3

バイトをファイルに書き込む必要があります。バイトの自然な表現はstd::uint8_t. 問題は、 sistream.read()ostream.write()動作することcharです。2 つのタイプの間で変換できます。たとえば、次のようになります。

char c;
input.read(&c, 1);
uint8_t b = (uint8_t)c;
uint8_t b = …;
char c = (char)b;
output.write(&c, 1);

char多くの場合、符号付きの型であり、AFAIK で書き込まれるビット パターンが元のビット パターンと同じになるという保証がないため、これは問題になる可能性がありint8_tます。

あるコンピューターで何かを書いた場合、他のコンピューターでも同じように読み取られるように、これがコンパイラーと OS 間で機能することを確認する必要があります。

これを行うための標準に準拠した方法はありますか?

4

1 に答える 1