var;) 检查文件的大小,使用 fin.seekg(0, ios_base-6ren">
gpt4 book ai didi

c++ - 如何检查文件中是否没有要读取的数据

转载 作者:太空狗 更新时间:2023-10-29 21:01:36 24 4
gpt4 key购买 nike

 std::fstream fin("emptyFile", std::fstream::in);
std::cout << fin.eof() << std::endl;

这会打印 0。所以使用 eof 函数我无法检查文件是否为空。或者在读取一些数据后我需要检查其中是否没有更多数据。

最佳答案

有两种方法可以检查您是否“可以从文件中读取内容”:

  1. 尝试阅读它,如果它失败了,那是不对的...(例如 fin >> var;)
  2. 检查文件的大小,使用 fin.seekg(0, ios_base::end); 后跟 size_t len = fin.tellg();(和然后回到开头 fin.seekg(0, ios_base::beg);)

但是,如果您尝试从文本文件中读取整数,则第二种方法可能不起作用 - 文件可能有 2MB 长,但仍然不包含单个整数值,因为它全是空格和换行符等.

请注意,fin.eof() 会告诉您是否已尝试读取超出文件末尾的内容。

关于c++ - 如何检查文件中是否没有要读取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com