を使用してファイルの内容を読み取りたいとしますbasic_filebuf
。boost::uintmax_t
サイズが。というタイプがあり8 bytes
ます。私は次のように書き込もうとしています。
typedef basic_filebuf<uintmax_t> file;
typedef istreambuf_iterator<uintmax_t> ifile;
file f;
vector<uintmax_t> data, buf(2);
f.open("test.txt", std::ios::in | std::ios::binary);
f.pubsetbuf(&buf[0], 1024);
ifile start(&f), end;
while(start != end)
{
data.push_back(*start);
start++;
}
問題は、一部はbytes
読み取られ、他は読み取られないことです。たとえば9 bytes
、ファイルに次の番号が付けられているとします1-9
。
|1|2|3|4|5|6|7|8|9|
上記のコードを実行すると、1つの要素のみがにプッシュバックされます。これには、 :の元のデータからのデータのみdata
が含まれます。4 bytes
f
[0|0|0|0|4|3|2|1] --> only element in [data]
私は何が間違っているのですか?basic_filebuf
使い方は知っていますが、直接使うのは初めてfilebuf
です。