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]) {
    //...........   
}

==比較しますが=、とfg等しくなりx[0]ます。そのため、毎回 true になります。

于 2013-04-04T03:19:06.117 に答える