我正在阅读一本关于C ++的入门书。 其中有一个关于打开文件的示例程序。
代码如下......
#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream fin;
fin.open("country");
while(fin)
{
....
.....
}
}
这是我的疑问。 在作者所说的代码中,如果文件操作中存在任何错误(包括文件结束条件),则fin将评估为0.在这种情况下,如何将对象评估为整数(即0.或者一些 - 零)?
答案 0 :(得分:2)
在这种情况下,如何将对象计算为整数?
请注意
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';
}