此代码:
QString output("test1\ntest2");
qDebug() << output;
导致此输出:
"test1\ntest2"
我想要的是:
"test1
test2"
那么如何使用qDebug()(以及类似的输出仿函数)在多行中打印包含换行符的QString?
答案 0 :(得分:18)
qDebug()
用于调试目的,因此它会在打印QString
,QByteArray
,QChar
参数时转义不可打印的字符并添加引号。
尝试使用qDebug().noquote()
,因为这会禁用转义不可打印的字符,如下所示:
QString output("test1\ntest2");
qDebug().noquote() << output;
qDebug()
,qInfo()
,qWarning()
,qCritical()
和qFatal()
都是为debugging purposes提供的。它们并不意味着在生产代码中向用户显示内容。
除非您正在打印/记录某些调试语句,否则请不要使用这些方法。