while(std::cin>>value)的判定
原文:测试流的状态(istream流),如果流是有效的(即,读入下一个输入是可能的),则返回true,否则,返回false,作为while的判定结果(bool值)
我的理解:此处读入一个输入流放在value中,并以左值(输入流)作为逻辑判定的对象,如果输入成功(所谓输入成功,是指输入的数据与value的类型匹配),则判定为true
实例:定义value为int,输入“Ctrl+Z”(C中的EOF--end of file),则没有把输入成功赋予value(输入非int,无效);或输入“abcd”,亦为无效,就要返回false,while循环结束
源代码:#i nclude <iostream>
int main()
{
int sum=0,value;
//read till end of file,calculating a running total of all values read
while(std::cin>>value)
sum+=value;//equivalent to sum=sum+value
std::cout<<"Sum is: "<<sum<<std::endl;
return 0;
}
Input:3 4 5 6 Ctrl+Z
Output:sum is 18
Input:3 4 5 abadfads(or 3.112312 )
Output:sum is 12
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}