qDebug输出QString

qDebug输出QString

https://blog.csdn.net/lian_gong2009/article/details/50468887

原创 2016年01月06日 14:54:04

   在使用qDebug输出QString,直接输出会有问题,正确的方法如下:

 

[cpp] view plain copy
 
  1. QString readString = “Hello World!”;   
  2. qDebug("readString = %s",qPrintable(readString));  

应该使用如下函数转换一下:

const char * qPrintable(const QString & str)
Returns str as a const char *. This is equivalent to str.toLocal8Bit().constData().
 
 
#include <QtCore>
#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString       str = "QQ#34241988;E-mail#songwei_163@163.com;Address#Chengdu,Sichuan;MSN#songwei_163@163.com;Home Page#http://www.google.com";
    QStringList   strlist = str.split(";");

    foreach(QString  tmp_str,strlist)
    {
        qDebug("%s",tmp_str.toLocal8Bit().constData());
    }
    qDebug("-------------------------------\n");

    for(int i=0;i<strlist.count();i++)
    {
     QStringList strstrlist=strlist.at(i).split("#");
     qDebug("Field:%s,Value:%s",qPrintable(strstrlist.at(0)),qPrintable(strstrlist.at(1)));
     //
     //for(int j=0;j<strstrlist.count();)
     //{
     // qDebug("Field:%s",strstrlist.at(j++).toLocal8Bit().data());
     // qDebug("Value:%s",strstrlist.at(j++).toLocal8Bit().data());
     //}
     //qDebug("list[%d]=%s/n",i,strlist.at(i).toLocal8Bit().data());
     //
    }

    return a.exec();
}

/*
QQ#34241988
E-mail#songwei_163@163.com
Address#Chengdu,Sichuan
MSN#songwei_163@163.com
Home Page#http://www.google.com
-------------------------------

Field:QQ,Value:34241988
Field:E-mail,Value:songwei_163@163.com
Field:Address,Value:Chengdu,Sichuan
Field:MSN,Value:songwei_163@163.com
Field:Home Page,Value:http://www.google.com

*/

 

posted @ 2018-04-13 16:40  sky20080101  阅读(702)  评论(0)    收藏  举报