バイトをファイルに書き込む必要があります。バイトの自然な表現は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 間で機能することを確認する必要があります。
これを行うための標準に準拠した方法はありますか?