从文件中逐字节读取

时间:2013-10-23 13:58:13

标签: c++ file

如何以字节形式读取文件,而不是使用矢量。

通过使用它,我可以将整个文件读入Bytes的矢量。

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'字节等, 调整大小选项在这里不起作用。

我看到了这个链接,reading the binary file into the vector of unsigned chars,这造成了更多的混乱。

对此有任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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和错误。