【问题标题】:What does the '*' and ')' mean in the output of qDebug()<<QByteArray?qDebug()<<QByteArray 的输出中的 '*' 和 ')' 是什么意思?
【发布时间】:2021-10-11 03:28:47
【问题描述】:

代码:

QByteArray receive=serialport.readAll();
qDebug()<<"receive="<<receive;

qDebug 输出:

receive= "\x02\x03*\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9D)"

*) 是什么意思?

【问题讨论】:

    标签: c++ qt qbytearray qdebug


    【解决方案1】:

    来自documentation

    将字节数组 t 写入流并返回对流的引用。通常,QDebug 在引号内打印数组并将控制或非 US-ASCII 字符转换为其 C 转义序列 (\xAB)。这样,输出始终是 7 位干净的,并且可以从输出中复制字符串并在必要时将其粘贴回 C++ 源代码中。

    要打印不转换的不可打印字符,请启用noquote() 功能。请注意,某些 QDebug 后端可能不是 8 位干净的。

    QDebug Class - QDebug &amp;QDebug::operator&lt;&lt;(const QByteArray &amp;t)

    所以可打印的 ASCII 字符将被打印为字符,其他字节值将被转义

    【讨论】:

      【解决方案2】:

      '*'\x2a')'\x29

      我猜qDebug()&lt;&lt;QByteArray 打印一个字节作为 ASCII 符号,如果它是可打印的,如果不是,打印它的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        • 2014-10-05
        • 2019-10-05
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多