'>>'是cin的一个运算符重载函数,而且cin要满足连续使用>> >>的要求,所以返回值应该是istream对象,但是istream对象的话不就不能判断返回值是true 还是false了吗?
为什么while可以判断?(还是说返回值不是istream?这是我猜想的)
'>>'是cin的一个运算符重载函数,而且cin要满足连续使用>> >>的要求,所以返回值应该是istream对象,但是istream对象的话不就不能判断返回值是true 还是false了吗?
为什么while可以判断?(还是说返回值不是istream?这是我猜想的)
cin
是istream
重载了下面两个:
istream& operator>>(istream &, string &);
operator bool();
调用那句话的时候 两个依次执行
转换为布尔值的逻辑是 如果fail
bad
eof
至少一个是true 那么转换结果为false 反之为true
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答469 阅读✓ 已解决
推荐看看这篇文章
http://www.perfect-is-shit.com/deep-into-while-cin.html