Qt中QString对象使用toStdString().data()会产生错误
2013-01-29 20:19
585 查看
来看下面一个例子:
输出结果显而易见:
mstr = china
nstr = great
但如果我这样写:
答案应该是不变的,可偏偏不是这样,答案是:
mstr = great
nstr = great
我在做毕设的时候遇到字符串输出乱码的问题就是这里搞的鬼,一开始还不相信,后来就写了这么个小程序试了一下,果真有问题。不知道Qt中这个toStdString().data()是怎么实现的,以后得注意了,得照着前面那种方式写。
#include <QtGui/QApplication> #include <QString> #include <stdio.h> int main(int argc, char *argv[]) { QString m("china"); QString n("great"); const char *mstr = m.toStdString().data(); printf("mstr = %s\n", mstr); const char *nstr = n.toStdString().data(); printf("nstr = %s\n", nstr); return 0; }
输出结果显而易见:
mstr = china
nstr = great
但如果我这样写:
#include <QtGui/QApplication> #include <QString> #include <stdio.h> int main(int argc, char *argv[]) { QString m("china"); QString n("great"); const char *mstr = m.toStdString().data(); const char *nstr = n.toStdString().data(); printf("mstr = %s\n", mstr); printf("nstr = %s\n", nstr); return 0; }
答案应该是不变的,可偏偏不是这样,答案是:
mstr = great
nstr = great
我在做毕设的时候遇到字符串输出乱码的问题就是这里搞的鬼,一开始还不相信,后来就写了这么个小程序试了一下,果真有问题。不知道Qt中这个toStdString().data()是怎么实现的,以后得注意了,得照着前面那种方式写。
相关文章推荐
- Qt中QString对象使用toStdString().data()会产生错误
- 关于Qt内嵌CEF使用QString::toStdString();函数导致的一些坑
- QT中 QString转化为String时候的toStdString与toLocal8Bit 的区别
- 有关 QString::toStdString() 使用的一个细节问题
- G++编译错误 no matching function for call to '_tag_data_value::StringAddLen(std::string, int, int)
- 部署asp.net时产生“分析器错误:在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的...”
- git代码管理:使用SourceTree push时错误:error: unable to rewind rpc post data - try increasing http.postBuffer
- QT处理中文路径名时把QString转换成std::string
- Qt之std::string与QString之间的转换
- 使用qt开发应用程序时,选择vs还是qtcreator?选择string还是qstring?
- 使用vs2008 的OutputDebugString 时编译产生的错误
- C++中,如何在标准库的std::string和常用库(Qt,VC等)的QString之间进行选择?
- Qt中 error: 'to_string' is not a member of 'std'解决方法
- Qt tostdString
- 在Mac下使用QT调用OpenCV产生error: symbol(s) not found for architecture x86_64错误
- vs2010下QString::toStdString()崩溃
- 关于在Webservice里使用LinqToSQL遇到一对多关系的父子表中子表需要ToList输出泛型而产生循环引用错误的解决办法!(转)
- 使用CURL上传文件和数据时提示Array to string conversion错误,解决方法!
- 使用log4cplus时遇到的链接错误:无法解析的外部符号 "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,
- How to convert QString to std::string?