我正在阅读一本关于 C++ 的介绍性书籍。 其中有一个打开文件的示例程序。
代码如下...
#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream fin;
fin.open("country");
while(fin)
{
....
.....
}
}
这是我的疑问。 在代码中作者说,如果文件操作中有任何错误(包括文件结束条件),fin 将评估为 0。在这种情况下,如何将对象评估为整数(即 0。或一些-非零)?
最佳答案
In this case how can an object be evaluated to an integer?
申请operator bool .
请注意
while(fin)
不常见。相反,它应该与输入操作一起使用。然后测试是测试输入操作是否成功。例如,请参见链接示例。
#include <iostream>
#include <sstream>
int main()
{
std::istringstream s("1 2 3 error");
int n;
std::cout << std::boolalpha << "(bool)s is " << (bool)s << '\n';
while (s >> n) { // Is read successful?
std::cout << n << '\n';
}
std::cout << std::boolalpha << "(bool)s is " << (bool)s << '\n';
}
关于c++ - C++中的基本文件处理,EOF检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40364589/