gpt4 book ai didi

c++ - while(cin) 和 while(cin >> num) 有什么区别

转载 作者:IT老高 更新时间:2023-10-28 22:24:53 28 4
gpt4 key购买 nike

以下两个循环和每个循环什么时候停止有什么区别?

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
int x,y;
while(cin >> x){
// code
}
while(cin){
cin >> y;
//code
}
return 0;
}

最佳答案

让我们分别看一下:

while (cin >> x) {
// code
}

这个循环,直观的意思是“不断将cin中的值读入x,只要有值可以读取,就继续循环。”一旦读取到一个不是 int 的值,或者一旦 cin 关闭,循环就会终止。这意味着循环只会在 x 有效时执行。

另一方面,考虑这个循环:

while (cin){
cin >> y;
// code
}

语句while (cin)的意思是“当之前对cin的所有操作都成功时,继续循环”。一旦我们进入循环,我们将尝试将一个值读入 y。这可能会成功,也可能会失败。但是,无论哪种情况,循环都会继续执行。这意味着一旦输入了无效数据或没有更多数据要读取,循环将使用 y 的旧值再执行一次,因此您将需要多一次循环迭代.

你绝对应该更喜欢这个循环的第一个版本而不是第二个版本。除非有有效数据,否则它永远不会执行迭代。

希望这会有所帮助!

关于c++ - while(cin) 和 while(cin >> num) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19483126/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com