C++ “无操作员”&燃气轮机=&引用;匹配c+中的这些操作数错误+;使用while循环时

C++ “无操作员”&燃气轮机=&引用;匹配c+中的这些操作数错误+;使用while循环时,c++,C++,这是密码 int main() { int x; while((cin >> x) >= 2){ cout<<"Greater than 2"; } } intmain() { int x; 而((cin>>x)>=2){ cout=int 我不熟悉c++在while条件下,您正在比较cin>>x和2 我相信您希望检查x>=2的条件。但是,在您的代码中,编译器正在将cin>>x的输出与2进行比较。由于cin

这是密码

int main()
{
    int x;
    while((cin >> x) >= 2){
      cout<<"Greater than 2";
    }
}
intmain()
{
int x;
而((cin>>x)>=2){
cout=int

我不熟悉c++

在while条件下,您正在比较cin>>x2

我相信您希望检查x>=2的条件。但是,在您的代码中,编译器正在将cin>>x的输出与2进行比较。由于cin运算符的输出不是INT,因此您得到了错误

有关这方面的更多信息,请参阅:


就纠正代码而言,请尝试while(cin>>x&&x>=2),因为编译器将首先执行cin,然后执行比较。

在while条件下,您将比较cin>>x2

我相信您希望检查x>=2的条件。但是,在您的代码中,编译器正在将cin>>x的输出与2进行比较。由于cin运算符的输出不是INT,因此您得到了错误

有关这方面的更多信息,请参阅:


就纠正代码而言,请尝试而(cin>>x&&x>=2),因为在这里编译器将首先执行cin,然后执行比较。

请按以下方式更改代码,以便将从输入流读取与整数比较分离

int main()
{
    int x;

    while(true)
    {
        std::cin >> x;
        if(x > 2)
        {
            std::cout << "Greater than 2";
        }
        else
        {
            std::cout << "Lesser than or equal to 2";
            break;
        }
    }
}
intmain()
{
int x;
while(true)
{
标准:cin>>x;
如果(x>2)
{

std::cout x
返回cin(istream对象),但不返回您读取的值(在您的情况下为整数)。

请按以下方式更改代码,以便从输入流读取与整数比较分离

int main()
{
    int x;

    while(true)
    {
        std::cin >> x;
        if(x > 2)
        {
            std::cout << "Greater than 2";
        }
        else
        {
            std::cout << "Lesser than or equal to 2";
            break;
        }
    }
}
intmain()
{
int x;
while(true)
{
标准:cin>>x;
如果(x>2)
{

std::cout x
返回cin(istream对象),但不返回您读取的值(在您的情况下为整数)。

(cin>>x)
返回
cin
,而不是
x
。如果您想在比较行中执行所有操作,您可能需要
而((cin>>x)和&x>=2)
。(严格来说,那些使用语句的
不是预处理器指令,只有
#include
才是。)这是有效的!我不明白为什么我不能使用>2操作直接比较cin>>x,请您解释一下该部分或参考som资源,我可以阅读以获得更好的理解?感谢compier错误很清楚:
无运算符“>=”匹配这些操作数--操作数类型为:std::basic_istream>=int
cin>>x
的类型为
std::basic_istream
,您无法将其与
int
@RealSlimShady
cin>>x
返回上述
cin
。它相当于
cin.operator>>(x)
将读取的值放入x中,并返回istream对象
cin
。当考虑行
cin>>a>>b
时,很容易看出这一点。写入
a>>b
没有意义,但上面的代码是正确的,因为
cin>>a
返回
cin
,而不是
a
(cin>>x)
返回
cin
,而不是
x
。如果要在比较行中执行所有操作,您可能需要
((cin>>x)和&x>=2)
。(严格来说,那些使用
语句的
不是预处理器指令,只有
\include
才是。)这是有效的!我不明白为什么我不能使用>2操作直接比较cin>>x,请您解释一下该部分或参考som资源,我可以阅读以获得更好的理解?感谢compier错误很清楚:
无运算符“>=”匹配这些操作数--操作数类型为:std::basic_istream>=int
cin>>x
的类型为
std::basic_istream
,您无法将其与
int
@RealSlimShady
cin>>x
返回上述
cin
。它相当于
cin.operator>>(x)
将读取的值放入x中,并返回istream对象
cin
。当考虑行
cin>>a>>b
时,很容易看出这一点。写
a>>b
没有意义,但上面的代码是正确的,因为
cin>>a
返回
cin
int main()
{
    int x;

    while(true)
    {
        std::cin >> x;
        if(x > 2)
        {
            std::cout << "Greater than 2";
        }
        else
        {
            std::cout << "Lesser than or equal to 2";
            break;
        }
    }
}