【问题标题】:How to print QString containing line breaks using qDebug如何使用 qDebug 打印包含换行符的 QString
【发布时间】:2017-01-26 09:31:51
【问题描述】:

这段代码:

QString output("test1\ntest2");
qDebug() << output;

导致这个输出:

"test1\ntest2"

我想要的是:

"test1
test2"

那么如何使用qDebug()(和类似的输出函数)打印包含多行换行符的QString

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    qDebug() 用于调试目的,因此它会在打印 QStringQByteArrayQChar 参数时转义不可打印的字符并添加引号。

    尝试使用qDebug().noquote(),因为这会禁用转义不可打印的字符,如下所示:

    QString output("test1\ntest2");
    qDebug().noquote() << output;
    

    警告:

    qDebug()qInfo()qWarning()qCritical()qFatal() 都为debugging purposes 提供。它们并不是为了在生产代码中向用户显示某些内容。

    请不要使用这些方法,除非您正在打印/记录一些调试语句。

    【讨论】:

    • 打败我!我正要发布相同的答案。
    • 工作得非常好 :-) 感谢你们俩
    • @Paddre ,请注意:qDebug 用于调试目的,您不应依赖它来输出程序。
    • @Paddre 、qDebug()qWarning()qCritical()qFatal() 均用于调试目的。它们并不是要在生产代码中向用户输出一些东西。请不要使用这些方法,除非您正在打印/记录一些调试语句。
    • 您能解释一下为什么您认为所有 qDebug 的消息都不是为了在生产代码中向用户显示某些内容吗?
    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多