【发布时间】:2016-12-07 15:11:30
【问题描述】:
#include <QCoreApplication>
#include <QByteArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QByteArray dataReceivedFromSerialPort;
dataReceivedFromSerialPort.push_back(0x0A);
dataReceivedFromSerialPort.push_back(0x0B);
dataReceivedFromSerialPort.push_back(0x0C);
dataReceivedFromSerialPort.push_back(0x0D);
dataReceivedFromSerialPort.push_back(0x0E);
dataReceivedFromSerialPort.push_back(0x0F);
dataReceivedFromSerialPort.push_back(0x07);
dataReceivedFromSerialPort.push_back(0x02);
dataReceivedFromSerialPort.push_back(0x01);
dataReceivedFromSerialPort.push_back(0x02);
qDebug() << "tostr: " << dataReceivedFromSerialPort.toStdString().c_str();
return a.exec();
}
上面没有打印任何值。它不打印除“tostr:”之外的任何内容。如果我将 0x0A 存储在 uchar 中,然后将其推送到 qByteArray 中,那么这个问题就消失了。
我能以目前的形式打印它吗?
【问题讨论】:
-
为什么你要经历这些转化,而不是仅仅使用
qDebug() << dataReceived;? -
该示例按设计工作。我不太明白你想做什么。如果你想引用不可打印的代码,你必须明确地这样做。
dataReceivedFromSerialPort应该是您的本地编码,即 UTF-8。如果不是,则由您自己按摩以进行展示。