当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当我们遇到文件结束符(end-of-file),或遇到一个无效输入时(例如,读入的值不是一个整数时),istream对象的状态会变为无效。处于无效状态的istream对象会使条件变为假。
#include <iostream>
using namespace std;
int main(){
int sum = 0, value = 0;
while(cin>>value)
sum += value;
cout<<"sum is: "<<sum<<endl;
return 0;
}
上面的例子,需要输入文件结束符或者非整数(比如:字符串),循环才会结束。文件结束符的输入与系统相关:
windows:Ctrl+z,然后输入:Enter。
Unix:Ctrl+d。