Mey*_*sam 28 c++ qstring qt qdebug
有没有简单的方法来完成以下工作?我的意思是有没有帮助类Qt准备字符串qDebug?
QString s = "value";
qDebug("abc" + s + "def");
Run Code Online (Sandbox Code Playgroud)
Kur*_*tyn 24
您可以使用以下内容:
qDebug().nospace() << "abc" << qPrintable(s) << "def";
Run Code Online (Sandbox Code Playgroud)
这nospace()是为了避免在每个参数之后打印出空格(默认为qDebug()).
Gre*_*low 21
我不知道这么简单.你可以做:
QByteArray s = "value";
qDebug("abc" + s + "def");
Run Code Online (Sandbox Code Playgroud)
要么
QString s = "value";
qDebug("abc" + s.toLatin1() + "def");
Run Code Online (Sandbox Code Playgroud)
Krz*_*iek 11
据Qt的核心5.6文档,你应该使用qUtf8Printable()的<QtGlobal>头打印QString用qDebug.
你应该这样做:
QString s = "some text";
qDebug("%s", qUtf8Printable(s));
Run Code Online (Sandbox Code Playgroud)
或更短:
QString s = "some text";
qDebug(qUtf8Printable(s));
Run Code Online (Sandbox Code Playgroud)
看到:
选项1:使用qDebug的C字符串格式和变量参数列表的默认模式(如printf):
qDebug("abc%sdef", s.toLatin1().constData());
Run Code Online (Sandbox Code Playgroud)
选项2:使用带有重载<<运算符的C++版本:
#include <QtDebug>
qDebug().nospace() << "abc" << qPrintable(s) << "def";
Run Code Online (Sandbox Code Playgroud)
参考:https://qt-project.org/doc/qt-5-snapshot/qtglobal.html#qDebug
| 归档时间: |
|
| 查看次数: |
68900 次 |
| 最近记录: |