gpt4 book ai didi

c++ - eof() 返回什么?

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

代码如下:

string fname = "/home/jack/example.csv";
ifstream csvin(fname.c_str());
if (csvin.eof()) {
do_something;
}

我的问题是:在什么情况下 eof() 返回 true。我有以下选择:

  1. 文件不存在。
  2. 文件为空。
  3. 文件不存在或为空。

不幸的是documentation没有帮助,因为我不知道 eofbit error state flag 是什么意思。我也不明白 End-of-File is reached in the sequence associated with the stream 是什么意思。我假设 c_str() 返回一些迭代器,如果它已经被某些东西使用它可能已经结束了。但是,我对 c_str() 的结果是新鲜的简单情况感兴趣,如果文件不存在它将返回什么,如果文件为空它将返回什么?

已编辑

我只想知道上面给定的代码在两种情况下返回什么:

  1. 文件不存在。
  2. 文件为空。

最佳答案

eof() 当您在流中所读取的位置已到达文件末尾时返回 true。它实际上返回读取文件末尾(尝试读取过去)时设置的 eof 标志 的值。查看C++: .eof on an empty file有关 eof 和空文件的讨论!

关于c++ - eof() 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15901092/

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