C/C++和Qt中数据类型转换

时间:2021-10-26 20:19:09

C/C++和Qt中数据类型转换


       由于项目需要,经常使用VS和Qt,其中遇到的一些数据类型转换问题,现在都一一罗列出来,不全的后续遇到会补充。暂时有这些字符之间的转换:


1、C/C++中string和Qt中QString转换

[html]  view plain  copy
  1. <span style="font-size:18px;">QString temp = "D:\\Pic";   
  2. string Str = temp.toStdString();  
  3. cout<<temp.toStdString()<<endl;    //显示temp中存储的内容。</span>  

2、Qt中string和gcstring转换
[html]  view plain  copy
  1. <span style="font-size:18px;">string Str = "D:\\Pic";  
  2. gcstring TriggerModeStr;  
  3. TriggerModeStr = Str.c_str();</span>  
3、C/C++中string和char[]转换

[html]  view plain  copy
  1. <span style="font-size:18px;">QString temp = "D:\\Pic";          //控件中获取的存图路径。  
  2. string Str = temp.toStdString();   //Qt中把QString转换成string。  
  3.   
  4. char savePicName[20];              //下面是把string类型转换成char[]类型。  
  5. int j;  
  6. for (j = 0; j < Str.length(); j++)  
  7.      savePicName[j] = Str[j];  
  8. savePicName[j] = '\0';  
  9.   
  10. char name[20] = "/%05d.jpg";      //这个是图片的命名,以0开头5位,第一个是00001.jpg.  
  11. strcat(savePicName, name);        //strcat(数组,指针/数组)是把图片路径和命名加起来。  
  12. cout<<savePicName<<endl;  //这里就输出了:D:\Pic\%05d.jpg.和下面注释的sprintf()一样。  
  13.   
  14. //保存图片,把存图路径和图片命名分开来写。  
  15. char FileName[20];  
  16. sprintf(FileName, savePicName , i);      
  17. //sprintf(file_name, "D:\\Pic\\%05d.jpg", i);  
  18. CImagePersistence::Save(ImageFileFormat_Png, FileName, ptrGrabResult);</span>