• 7776阅读
  • 7回复

请问如何将QString类型转换成 char*类型 [复制链接]

上一主题 下一主题
离线ljgezi
 
只看楼主 倒序阅读 楼主  发表于: 2007-03-28
— 本帖被 XChinux 执行加亮操作(2008-05-27) —
请问如何将QString类型转换成 char*类型阿?
离线zeki709

只看该作者 1楼 发表于: 2007-03-28
用toAscii()转换为QByteArray,再用data()转换为char *
离线XChinux

只看该作者 2楼 发表于: 2007-03-28
toStdString().c_str()
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线yfx2003

只看该作者 3楼 发表于: 2008-05-27
如下转换怎么不对呢:

QString fileName("c:\windows\file.cpp");

const char *readStr = fileName.toStdString().c_str();
qDebug() << "string:" << readStr;

结果,输出的是乱码……


谢谢。
www.qtcn.org/gpq4/
ajaxref.okajax.com/
离线XChinux

只看该作者 4楼 发表于: 2008-05-27
QString fileName("c:\\windows\\file.cpp");

应该是上面这样的吧?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线yfx2003

只看该作者 5楼 发表于: 2008-05-27
必须分两部走:

QByteArray ba = qStrFileName.latin1();//将所得文件名转换为字符//yfx0527
const char *fileName = ba.data();

参见 http://blog.sina.com.cn/s/blog_3fd731da01009fgx.html
www.qtcn.org/gpq4/
ajaxref.okajax.com/
离线yfx2003

只看该作者 6楼 发表于: 2008-05-27
引用第4楼XChinux于2008-05-27 15:06发表的  :
QString fileName("c:\windows\file.cpp");
应该是上面这样的吧?


是的。
不过,使用反斜杠则一个就够了……
www.qtcn.org/gpq4/
ajaxref.okajax.com/
离线steinlee

只看该作者 7楼 发表于: 2008-05-28
two other ways:
  QString str( tr("testing") ); 
1. const char * new_str = str.toLocal8Bit().constData();
  or
2. const char * new_str = qPrintable( str ); # this function is defined in <QtGlobal>
Looking for remote C/C++ and Qt 兼职
快速回复
限100 字节
 
上一个 下一个