【发布时间】:2016-03-10 00:19:13
【问题描述】:
char x[5];
ifstream i("test.txt", std::ifstream::binary);
while (i.read(x, sizeof(x))) {
...
bzero(x, sizeof(x));
}
如果文件字节大小不是 5 的倍数,则程序无法读取最后一个块。我如何确保也阅读该内容?
【问题讨论】:
-
如果输入序列出现文件结束条件(在这种情况下,调用 setstate(failbit|eofbit))。可以使用 gcount() 查询成功提取的字符数。 en.cppreference.com/w/cpp/io/basic_istream/read
-
如何将其合并到这里?我应该在 while 块内调用 i.gcount() 吗?