在使用qDebug输出QString,直接输出会有问题:
QString str1="welcome";
qDebug()<<str1;
注意不是QDebug
输出:
"welcome"
如果想输出不带引号的
正确的方法如下:
使用如下函数转换一下:const char * qPrintable(const QString & str)
QString str1="welcome";
qDebug("%s",qPrintable(str1));
qDebug()<<qPrintable(str1);//两种方法都可以
输出
welcome
同理:
QMap<QString,QString>strMap;
strMap.insert("beijing","1");
strMap.insert("hangzhou","2");
strMap["nanjing"]="3";
for(auto iter=strMap.constBegin();iter!=strMap.constEnd();iter++)
{
qDebug()<<iter.key()<<iter.value();
}
输出
"beijing" "1"
"hangzhou" "2"
"nanjing" "3"
因此要改为
for(auto iter=strMap.constBegin();iter!=strMap.constEnd();iter++)
{
qDebug()<< qPrintable(iter.key())<<iter.value().toInt();
}
输出:
beijing 1
hangzhou 2
nanjing 3