我正在尝试使用QDebug以十六进制格式显示一个数字。下面是我写的代码。它正在工作,但输出的字符串内容包含在双引号中:
如何删除这些引号?
m_CanMsg_ptr->id = 0x720;
m_CanMsg_ptr->sizeData = 1;
m_CanMsg_ptr->data[0] = 0x05;
MessageID.setNum(m_CanMsg_ptr->id,16);
DataSize = QString("%1").arg(m_CanMsg_ptr->sizeData, 0, 16);
data = QString("%1").arg(m_CanMsg_ptr->data[0], 0, 16)
qDebug() << "Heart-Beat : Msg ID = " << MessageID << " Msg DLC = " << DataSize;
qDebug() << "Msg Data " << " = " << data;根据这些资源,我做到了:
http://forum.qt.io/topic/5003/moved-how-to-display-a-local-variable-in-hex-when-debugging-a-qt-app/2 Qt

发布于 2013-10-14 11:23:40
qDebug是一个调试接口。它不是用于自定义格式的输出,它只是一种以可读形式快速获取数据的方法。它是针对开发人员的,引号是为了提醒您您已经输出了一个字符串。qDebug()假定const char*数据是一条消息,并显示它没有引号,其他字符串类型(如QString )“只是数据”,并以引号显示。
如果您想要自定义格式,不要使用qDebug(),使用QTextStream
#include <QTextStream>
#include <cstdio>
QTextStream out(stdout);
void f() {
out << "Heart-Beat : Msg ID = " << MessageID << " Msg DLC = " << DataSize << endl;
}发布于 2017-11-22 13:39:48
解决办法很简单:
#include <QDebug>
int value = 0x12345;
qDebug() << "Value : " << hex << value;发布于 2014-08-13 09:19:43
您可以先格式化字符串:
int myValue = 0x1234;
QString valueInHex= QString("%1").arg(myValue , 0, 16);
qDebug() << "value = " << valueInHex;https://stackoverflow.com/questions/19358967
复制相似问题