cin作为while循环中的条件?

Sta*_*hil 3 c++ cin

这里有点新的C++.有可能做以下事情吗?

int temp;
while(cin >> temp != -9999){//Do something with temp}
Run Code Online (Sandbox Code Playgroud)

我无法使用那些确切的代码,但我觉得这样的事情应该是可能的.

编辑 尝试以下内容:

while(cin.getline(temp) != -9999){//Do something with temp}
Run Code Online (Sandbox Code Playgroud)

依然没有.难道getline()只能用字符串的工作?

Col*_*son 6

是的,它确实:

while (std::cin >> temp && temp != -9999)
Run Code Online (Sandbox Code Playgroud)

但是,C++中的运算符优先级很烦人,所以我会使用:

while (std::cin >> temp) {
    if (temp == -9999)
        break;
Run Code Online (Sandbox Code Playgroud)

理由是这std::cin是一个流.因此,从中读取会返回流,因此您可以执行以下操作:

std::cin >> temp >> temp2;
Run Code Online (Sandbox Code Playgroud)