C/C++和Qt中数据类型转换
由于项目需要,经常使用VS和Qt,其中遇到的一些数据类型转换问题,现在都一一罗列出来,不全的后续遇到会补充。暂时有这些字符之间的转换:
1、C/C++中string和Qt中QString转换
[html] view plain copy
- <span style="font-size:18px;">QString temp = "D:\\Pic";
- string Str = temp.toStdString();
- cout<<temp.toStdString()<<endl; //显示temp中存储的内容。</span>
2、Qt中string和gcstring转换
[html] view plain copy
- <span style="font-size:18px;">string Str = "D:\\Pic";
- gcstring TriggerModeStr;
- TriggerModeStr = Str.c_str();</span>
3、C/C++中string和char[]转换
[html] view plain copy
- <span style="font-size:18px;">QString temp = "D:\\Pic"; //控件中获取的存图路径。
- string Str = temp.toStdString(); //Qt中把QString转换成string。
-
- char savePicName[20]; //下面是把string类型转换成char[]类型。
- int j;
- for (j = 0; j < Str.length(); j++)
- savePicName[j] = Str[j];
- savePicName[j] = '\0';
-
- char name[20] = "/%05d.jpg"; //这个是图片的命名,以0开头5位,第一个是00001.jpg.
- strcat(savePicName, name); //strcat(数组,指针/数组)是把图片路径和命名加起来。
- cout<<savePicName<<endl; //这里就输出了:D:\Pic\%05d.jpg.和下面注释的sprintf()一样。
-
- //保存图片,把存图路径和图片命名分开来写。
- char FileName[20];
- sprintf(FileName, savePicName , i);
- //sprintf(file_name, "D:\\Pic\\%05d.jpg", i);
- CImagePersistence::Save(ImageFileFormat_Png, FileName, ptrGrabResult);</span>