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”字节等,resize 选项在这里不起作用。

我看到了这个链接,将二进制文件读入 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 回答