私は、書き込みしようとしているcharに依存して、通常8ビット(char)の代わりに1または2ビットしか書き込まないような圧縮プログラムを作ろうとしています。私は次のように書こうとしました:ビンファイルにシングルビットを書き込む方法
//I dont know what the function should return
char getBytes(char c)
{
return 0xff;
}
ofstream fout;
fout.open("file.bin", ios::binary | ios::out);
fout << getBytes(c);
しかしこれまでは文字のみを書きました。 どのように書くことができますか: '01'?または '1'のみ?どのような関数で私はバイトだけのファイルへの書き込みに使用する必要がありますか?ありがとう。
特定のビットを書き込む必要がある場合は、それらを1バイトにバッファリングし、8ビットでいっぱいになったらバイトを書き込む必要があります。 – Joe
ビットを書き込む*バイト*オフセットに移動し、既存のバイトを変更し、そのビットと希望のビットを変更して、同じ位置にバイトを書き戻します。 –