代码:
QByteArray receive=serialport.readAll();
qDebug()<<"receive="<<receive;
qDebug输出:
receive= "x02x03*x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x9D)"
*
和)
是什么意思?
来自文档:
将字节数组t写入流,并返回对流的引用。通常,
QDebug
将数组打印在引号内,并将控制字符或非US ASCII字符转换为其C转义序列(xAB
)。这样,输出总是7位干净的,如果需要,可以从输出中复制字符串并粘贴回C++源中。要打印不可打印的字符而不进行转换,请启用
noquote()
功能。请注意,某些QDebug
后端可能不是8位干净的。QDebug类-
QDebug &QDebug::operator<<(const QByteArray &t)
因此可打印的ASCII字符将打印为字符,其他字节值将转义
'*'
是x2a
,')'
是x29
。
我猜qDebug()<<QByteArray
在可打印的情况下将字节打印为ASCII符号,如果不可打印,则打印其值。