Qt中QString对象使用toStdString().data()会产生错误
来源:互联网 发布:网络管理软件应用 编辑:程序博客网 时间:2024/06/01 10:48
来看下面一个例子:
#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中QString对象使用toStdString().data()会产生错误
- Qt中QString::toStdString().c_str() 偶尔存在问题
- QT中 QString转化为String时候的toStdString与toLocal8Bit 的区别
- Qt tostdString
- 有关 QString::toStdString() 使用的一个细节问题
- vs2010下QString::toStdString()崩溃
- QT中QString 类的使用
- QT中QString 类的使用
- QT中QString 类的使用
- QT中QString类的使用
- Qt中对QString 类型对象的分割
- Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();(转载)
- Qt 中QString类相关函数的使用(2)
- toStdString()
- Qt中QString转char*
- qt中QString转char *
- Qt中 QString 转 char*
- HDU 2010 素数判定
- shell最基础的笔记
- [LeetCode] Next Permutation
- tcpdump 基础知识
- css兼容教程(css中!important介绍)
- Qt中QString对象使用toStdString().data()会产生错误
- 从win32控制台创建窗口过程
- 國內的另一個調試器 http://www.mdebug.org
- 磁盘性能--IOPS和吞吐量
- Truthy和Falsy:js变量中隐含的的boolean属性
- ios 自定义tableviewcell
- 再议JQuery中Ajax内存溢出问题。
- haXe语言中改进的switch...case语法
- 有趣的算法收藏