下面是代码:eof()返回什么?
string fname = "/home/jack/example.csv";
ifstream csvin(fname.c_str());
if (csvin.eof()) {
do_something;
}
我的问题是:在什么情况下eof()
返回true。我有以下选项:
- 文件不存在。
- 文件为空。
- 文件不存在或为空。
不幸的是documentation没有帮助,因为我不知道eofbit error state flag
的意思。我也不明白End-of-File is reached in the sequence associated with the stream
是什么意思。我假定c_str()返回一些迭代器,如果它已经被某些东西使用了,它可能已经达到了它的末尾。但是,我对c_str()
的结果是新鲜的简单情况感兴趣,如果文件不存在,它将返回什么,如果文件为空,它将返回什么?
EDITED
我只是想知道什么是在两种情况下上面给出的代码返回:
- 文件不存在。
- 文件为空。
通常,它是这样写的:while(!csvin.eof()){do_something();} – 2013-04-09 11:58:27
@Gearoid No.除非“通常”,你的意思是“通常在破损的代码中” – 2013-04-09 11:59:51
* *已领导导致你在一个循环,作为**,该网站很容易做**。将此网站视为您的第一个来源。 http://en.cppreference.com/w/cpp/io/basic_ios/eof – 2013-04-09 12:10:38