[英]Qt 5.7 \n behavior
在Qt 5.7控制台应用程序中:
#include <QCoreApplication>
#include <QtDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString s = "MDJ\nTest.\n";
qDebug() << "MDJ\nTest.\n";
qDebug() << s;
/* Prints:
MDJ
Test.
MDJ\nTest.\n
*/
return a.exec();
}
即\\ n在直接调试打印中按预期工作,但在调试打印(假定内容相同)变量时,仅将其视为两个纯字符。
我在Qt 5.7 Widget应用程序中也遇到类似的问题。
我已经搜索了文档,stackoverflow和Qt Center,但无法发现自己在做什么错。
有人可以为我指出一个解决方案吗?
该文档给您提示:
通常,QDebug在引号中打印字符串, 并将不可打印的字符转换为它们的Unicode值(\\ u1234)。
要在不进行转换的情况下打印不可打印的字符,请启用noquote()
功能。 请注意,某些QDebug后端可能不是8位干净的。
与
将以'\\ 0'结尾的字符串s写入流,并返回对该流的引用。 该字符串从不引用也不转换为输出,但是请注意,某些QDebug后端可能不是8位纯净的。
解决方案: qDebug().noquote() << "some\\nspecial\\nchars\\n\\tincluded"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.