while(std::cin>>value)的判定

      C++ Primer 2006-12-7 20:48
 
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
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}