什么是`cin>>变量`同时意味着什么?

时间:2014-07-24 17:29:47

标签: c++

我正在学习C ++,我遇到了以下代码:

int n, g;

while(cin >> n >> g) // <--------------
    // ... snip ...

标记线的含义是什么?这是否意味着“当n大于或等于g”时?并且cin&gt; = n?

2 个答案:

答案 0 :(得分:4)

“&GT;&gt;” 中是输入流运算符。该代码试图从标准输入流中读取两个整数。

http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/

答案 1 :(得分:3)

只要表达式while (expr) body为真(-ish),

body就会执行expr。那么cin >> n >> g实际上做了什么?

cin是标准输入流。通常是某人用键盘输入的东西。我们可以使用>> operator提取此流的值。所以cin >> n;读取整数。但是,(cin >> variable)的结果是对cin的引用。因此  我们可以再次使用>>以便从流中获取更多值:cin >> n >> g

这相当于cin >> n; cin >> g;。所以我们现在知道cin >> n >> g从输入流中获取两个整数值并返回对cin的引用。但是,如果你没记错的话,我说while语句中的表达式必须是真的。输入流如何才是真的?

嗯,有一个operator for that too。它调用另一个名为good的函数,如果流处于良好状态,则返回true,如果不是,则返回false。只要我们可以对它进行操作,流就处于良好状态。当我们到达时,我们就再也无法从中获取值了(我们在最后,对吧?)因此状态不是吗?好了。

此时,while中的表达式求值为false。

TL; DR :在没有剩余值或操作失败之前需要两个整数值。