问题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,就能