非Unicodeの16ビットワードをファイルに書き込み、後で読み戻したい。少しのバイト操作で、とを使用してモードでこれを実行できることを知っていchar
ます。16ビットワードを直接使用するにはどうすればよいですか?fstream::read()
fstream::write()
たとえば、次のことができるはずです。
basic_ofstream<uint16_t> aw;
aw.open("test.bin", ios::binary);
uint16_t c[] = {0x55aa, 0x1188};
aw.write(c, 2);
aw.close();
basic_ifstream<uint16_t> ax;
ax.open("test.bin", ios::binary);
uint16_t ui[2];
ax.read(ui, 2);
ax.close();
cout << endl << hex << unsigned(ui[0]) << " " << unsigned(ui[1]) << endl;
gcc 4.4出力:
d 0
Vc ++ 10出力:
CCCC CCCC
私もstd::basic_filebuf<uint16_t>
直接使用してみましたが、同じ結果が得られました。なんで?