[英]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.