我必须填充一个QByteArray
具有不同的数据。所以我正在使用QDataStream
.
QByteArray buffer;
QDataStream stream(&buffer, QIODevice::WriteOnly);
qint8 dataHex= 0x04;
qint8 dataChar = 'V';
stream << dataHex<< dataChar;
qDebug() << buffer.toHex(); // "0456" This is what I want
但是,我还想将 QByteArray 附加到buffer
.
QByteArray buffer;
QDataStream stream(&buffer, QIODevice::WriteOnly);
qint8 dataHex= 0x04;
qint8 dataChar = 'V';
QByteArray moreData = QByteArray::fromHex("ff");
stream << dataHex<< dataChar << moreData.data(); // char * QByteArray::data ()
qDebug() << buffer.toHex(); // "045600000002ff00" I would like "0456ff"
我缺少什么?
when a char*
附加它假设\0
终止并序列化writeBytes
它还首先写出大小(作为 uint32)
writeBytes' doc: http://qt-project.org/doc/qt-5/qdatastream.html#writeBytes
将长度说明符 len 和缓冲区 s 写入流并
返回对流的引用。
len 被序列化为 quint32,后跟 s 中的 len 个字节。笔记
数据未编码。
您可以使用writeRawData
规避它:
stream << dataHex<< dataChar;
stream.writeRawData(moreData.data(), moreDate.size());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)