【发布时间】:2017-01-26 09:31:51
【问题描述】:
这段代码:
QString output("test1\ntest2");
qDebug() << output;
导致这个输出:
"test1\ntest2"
我想要的是:
"test1
test2"
那么如何使用qDebug()(和类似的输出函数)打印包含多行换行符的QString?
【问题讨论】:
这段代码:
QString output("test1\ntest2");
qDebug() << output;
导致这个输出:
"test1\ntest2"
我想要的是:
"test1
test2"
那么如何使用qDebug()(和类似的输出函数)打印包含多行换行符的QString?
【问题讨论】:
qDebug() 用于调试目的,因此它会在打印 QString、QByteArray、QChar 参数时转义不可打印的字符并添加引号。
尝试使用qDebug().noquote(),因为这会禁用转义不可打印的字符,如下所示:
QString output("test1\ntest2");
qDebug().noquote() << output;
qDebug()、qInfo()、qWarning()、qCritical() 和qFatal() 都为debugging purposes 提供。它们并不是为了在生产代码中向用户显示某些内容。
请不要使用这些方法,除非您正在打印/记录一些调试语句。
【讨论】:
qDebug 用于调试目的,您不应依赖它来输出程序。
qDebug()、qWarning()、qCritical() 和 qFatal() 均用于调试目的。它们并不是要在生产代码中向用户输出一些东西。请不要使用这些方法,除非您正在打印/记录一些调试语句。