私は次のコードを持っています:
#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
は常に返されます。構文はオフですか?任意の助けいただければ幸いです。
C++では、比較に==
を使用します。 =
は割り当てです。これは、if
ステートメントの条件で使用できますが、文字が'\0'
でない限り、true
と評価されます('0'
ではありません)。
if(fg == x[0])
{
...
}
Ifステートメント内では==
を使用します。例えば:
if (fg == x[0]) {
//...........
}
==
は比較しますが、=
はfg
をx[0]
に等しくします。そのため、毎回trueになります。