[英]ifstream eof function (C++)
我有以下代码:
string a = "D:\\Users\\user-pc\\Desktop\\testing\\a.txt";
ifstream f;
/*edit*/ string line;
/*edit*/ getline(f, line);
f.open(a);
if ( f.eof() )
cout << "ended";
else
cout << "nope"
以及没有任何内容的文件“ a.txt”。
输出为否,始终为否。 我不明白。我用错了吗?
编辑:仍然.eof()不起作用
std::basic_istream<...>::eof()
仅在最近提取将流状态中的相应位设置为适当时返回true。 构造文件流时,其流状态始终为std::ios_base::goodbit
。
一种替代方法是检查下一个可用字符是否为EOF字符:
if (f.peek() == std::char_traits<char>::eof())
只有在读取尝试读取文件末尾之后才设置eofbit错误状态标志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.