qDebug()
そのため、 を使用して を印刷するとQString
、出力に引用符が突然表示されます。
int main()
{
QString str = "hello world"; //Classic
qDebug() << str; //Output: "hello world"
//Expected Ouput: hello world
}
でこれを解決できることはわかっていますが、 がなぜそのように動作するのか、また、 の印刷方法を変更するメソッドが内部にあるかどうかqPrintable(const QString)
疑問に思いました。QString
QString
ベストアンサー1
Qt 5.4にはこれを無効にする新しい機能があります。引用するとドキュメント:
QDebug と QDebug::noquote()
QChar、QString、QByteArray の内容を囲む引用符の自動挿入を無効にし、ストリームへの参照を返します。
この関数は Qt 5.4 で導入されました。
quote() および maybeQuote() も参照してください。
(強調は私によるものです。)
この機能の使用方法の例を次に示します。
QDebug debug = qDebug();
debug << QString("This string is quoted") << endl;
debug.noquote();
debug << QString("This string is not") << endl;
もう一つの選択肢は を使うことですQTextStream
。stdout
この例がドキュメント:
QTextStream out(stdout);
out << "Qt rocks!" << endl;