Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is QString printed with quotation marks?

Tags:

So when you use qDebug() to print a QString, quotation marks appears suddenly in the output.

int main() {     QString str = "hello world"; //Classic     qDebug() << str; //Output: "hello world"     //Expected Ouput: hello world } 

I know we can solve this with qPrintable(const QString), but I was just wondering why does QString work like that?, and Is there a method inside QString to change the way it's printed?

like image 246
Michael Avatar asked Jan 16 '15 02:01

Michael


1 Answers

Qt 5.4 has a new feature that lets you disable this. To quote the documentation:

QDebug & QDebug::​noquote()

Disables automatic insertion of quotation characters around QChar, QString and QByteArray contents and returns a reference to the stream.

This function was introduced in Qt 5.4.

See also quote() and maybeQuote().

(Emphasis mine.)

Here's an example of how you'd use this feature:

QDebug debug = qDebug(); debug << QString("This string is quoted") << endl; debug.noquote(); debug << QString("This string is not") << endl; 

Another option is to use QTextStream with stdout. There's an example of this in the documentation:

QTextStream out(stdout); out << "Qt rocks!" << endl; 
like image 86
MrEricSir Avatar answered Sep 24 '22 09:09

MrEricSir