12

我有以下代码:

#include <iostream>
using namespace std;
int main()
{
    char fg;
    cin>>fg;
    char x[20];
    x[0]='0';
    if(fg=x[0])
    {
        cout<<"It's true!"<<endl;
        return true;

    }
    cout<<"It's false!"<<endl;
    return false;
}

无论我给出什么输入,true总是返回。我的语法关闭了吗?任何帮助,将不胜感激。

4

2 回答 2

18

在 C++ 中,您==用于比较。是=一个任务。它可以在if语句的条件下使用,但true除非字符是'\0'(不是'0',因为它是在你的情况下),否则它将评估为:

if(fg == x[0])
{
    ...
}
于 2013-04-04T03:09:57.067 回答
2

在 if 语句中使用==. 例如:

if (fg == x[0]) {
    //...........   
}

==比较,但等于,=这就是为什么你每次都为真。fgx[0]

于 2013-04-04T03:19:06.117 回答