直接附加我的代码:
QByteArray block1;
QDataStream out(&block1, QIODevice::WriteOnly);
out <<int(17000);
qDebug() << block1.size();
qDebug() << block1;
qDebug() << block1.toHex();
QByteArray block2;
QDataStream out2(&block2, QIODevice::WriteOnly);
out2 << 'p' << 'a' << 't' << 'h';
qDebug() << block2.size();
qDebug() << block2;
qDebug() << block2.toHex();
我的问题是 QByteArray 输入到十六进制没有问题,但为什么直接输入“”?
答案 0 :(得分:0)
我已经复制了这个情况并得到了(QNX 6.5.0,Qt 4.8.7和Qt 5.5.0):
4
“
“00004268”
16
“
“00000070000000610000007400000068”
对于第一个数组 - block1 [0] = 0x00 =“\ x00”,block1 [1] = 0x00 =“\ x00”, block1 [2] = 0x42 =“B”(ASCII),block1 [3] = 0x68 =“h”(ASCII)。所以你在block1数组中有两个字符串 - 零和可打印的“Bh”。 另一个数组相同。