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