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?
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With