找不到"=="运算符

Cha*_*ugh -4 c++ if-statement operator-keyword

显然这个prgoram不起作用.软件告诉我'=='运算符丢失了.有些人可以告诉我该怎么做并解释为什么他/她的解决方案有效吗?

#include <iostream>
using namespace std;

int main() {

    int var{ 0 };

    cout << "Bitte eine Ganzzahl eingeben: ";
    if ((cin >> var) == false) {
        cerr << "Falsche Eingabe - Keine Zahl\n";
        exit(1);
    }


    system("pause");
    //return 0;
}
Run Code Online (Sandbox Code Playgroud)

而我们正在努力.为什么可以在if statemant中执行'cin'?我会在if statemant之前使用'cin'.

Mik*_*our 5

在现代C++中,可以使用a来测试流的状态explicit operator bool.这意味着它可以直接用作if语句中的条件,但不能隐式转换bool为与之进行比较false.所以你需要更多的惯用语

if (cin >> var)
Run Code Online (Sandbox Code Playgroud)

测试状态.

为什么可以在if statemant中执行'cin'?

因为条件可以是任何表达式,只要它具有可以转换为的结果即可bool.的>>操作者返回流,其可以经由I上述操作被转换的参考.