0

ベクトルを使用せずに、ファイルをバイト形式で読み取るにはどうすればよいですか。

これを使用することで、ファイル全体をバイトのベクトルに読み取ることができます。

std::basic_ifstream<BYTE> file(driveName, std::ios::binary);
vector<BYTE> x = std::vector<BYTE>(
    (std::istreambuf_iterator<BYTE>(file)),
     std::istreambuf_iterator<BYTE>() );

しかし、最初に 512 バイトを読み取り、次に 'x' バイト、'x1' バイトなどを読み取りたいのですが、サイズ変更オプションはここでは機能しません。

このリンクを見て、バイナリ ファイルを unsigned chars のベクトルに読み込むと、さらに混乱が生じました。

これに関する助けをいただければ幸いです。

4

1 に答える 1

1

下位レベルのインターフェースを使用できます。

std::ifstream ifs(filename, std::ios::binary);
char buf1[512];
ifs.read(buf1, sizeof(buf1) / sizeof(*buf1));
char buf2[x];
ifs.read(buf2, sizeof(buf2) / sizeof(*buf2));
char buf3[x1];
ifs.read(buf3, sizeof(buf3) / sizeof(*buf3));

EOF とエラーをチェックするだけです。

于 2013-10-23T14:04:19.567 に答える