• 10534阅读
  • 5回复

如何将const qstring*转化为qstring*,const char*转化为char*? [复制链接]

上一主题 下一主题
离线nzp
 
只看楼主 正序阅读 楼主  发表于: 2006-05-21
我这的一个函数的参数为const Qstring &fileIn,函数中有一条语句
Qtextstream ts(&fileIn,IO_Readonly);
编译始总是提示:invalid conversion from"const Qstring*"to"Qtring*",
不知如何下手,请高手指教!
还有一个问题就是使用QString::latin1()这个成员函数,赋值给一个char*的变量时,总是提示:
invalid convertion from "const char*"to"char*",
我是qt的初学者, 很多东西不太了解,希望各位帮帮小弟!!
谢谢!!
离线foxyz

只看该作者 5楼 发表于: 2009-10-30
这个好像是一个c++问题,

用const_cast<T*>(const T*)就OK
离线alan2008

只看该作者 4楼 发表于: 2009-10-29
万分感谢!
离线litao422
只看该作者 3楼 发表于: 2008-12-10
神贴留名,呵呵,
也遇到从 MultiLineEdit2->text() 取文本问题,因为含有汉字摆弄半天,苦苦不得要领,此方灵验,问题解决!
离线nzp
只看该作者 2楼 发表于: 2006-05-23
谢谢,楼上!!!
离线vinnyguo

只看该作者 1楼 发表于: 2006-05-23
1.可以先做一个fileIn 的一个deep copy,
QString fileInCopy = fileIn;
Qtextstream ts(&fileIn, IO_Readonly);
2.因为QSting 本身是Unicode编码,latin1()返回的是拉丁字符(128个,如a,b,c ,1,2,3等)表示,如果QString 里面存的是其他unicode(如汉字)则返回的串将是乱码一堆。建议用QString::utf8()先转换成utf8编码,然后在用data()即可返回char *.
char * str = QString("QT").utf8().data();
快速回复
限100 字节
 
上一个 下一个