QByteArray byteArray;
QDataStream dataStream(&byteArray, QIODevice::WriteOnly);
dataStream << (quint8)22;
dataStream << "test2";
qInfo() << byteArray;
結果: \x16\x00\x00\x00\x06test2\x00
なぜ1バイトではなく4バイトを使用しているのですか?私はそれが欲しいとはっきりと言いますunsigned char
。舞台裏で調整されているいくつかの記憶はありますか?オフにできますか?
編集:それは私がchar*
それを書いたときにのみ起こるようですそれはどこからともなく最初に3バイトを追加します。
\x16\x00\x00\x00\x06test2\x00
\x16
あなたはuint8ですか。
\x00\x00\x00\x06
は固定サイズで、文字列の長さの4バイトのヘッダーです(明らかにnullを含みます)。
次に、文字列の後に終了nullが続きます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加