qDebug()直接输入QByteArray并显示“”我不写

时间:2016-11-22 08:06:25

标签: qt resources

直接附加我的代码:

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();

enter image description here

我的问题是 QByteArray 输入到十六进制没有问题,但为什么直接输入“”

1 个答案:

答案 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”。 另一个数组相同。