深入理解C/C++标准输入输出,cin、scanf、getchar()、文件结束符EOF等常见问题详解

问题1:为什么我用while(cin>>a)一直跳不出循环?(cin的">>"函数返回值是什么?)

问题描述:《C++ primer》上也出现过类似如下代码,然后自己在控制台输入数据,一直输入都跳不出循环。

int a;
while(cin>>a){
   
}

原因:cin是一个类,没有返回值,while判断条件其实是在判断">>“函数的返回值。”>>“是一个被重载过的运算符,这个重载函数的返回值类型为istream&,返回值通常就是输入流cin本身,如果没有遇到错误输入或者文件末尾(EOF),cin就一直有效,当然就跳不出while循环。当你在键盘上输入Ctrl+Z,再按Enter键,就等同于输入遇到了文件末尾EOF,遇到EOF后,”>>"函数的返回值是0,就能

你可能感兴趣的:(C++,c++)