The*_*eer 3 c++ qt qbytearray qdatastream
我必须QByteArray使用不同的数据填充a .所以我正在使用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
Run Code Online (Sandbox Code Playgroud)
但是,我还想将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"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
rat*_*eak 12
当a char*附加时,它假定\0终止和序列化,writeBytes并且首先写出大小(如uint32)
将长度说明符len和缓冲区s写入流并返回对流的引用.
len被序列化为quint32,后跟来自s的len个字节.请注意,数据未编码.
你可以用writeRawData它来规避它:
stream << dataHex<< dataChar;
stream.writeRawData(moreData.data(), moreDate.size());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9692 次 |
| 最近记录: |