我有以下代码:
#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
。我的语法是否关闭?任何帮助,将不胜感激。
答案 0 :(得分:16)
在C ++中,您使用==
进行比较。 =
是一项任务。它可以在if
语句的条件下使用,但它将评估为true
,除非该字符为'\0'
(不是'0'
,因为它在您的情况下):
if(fg == x[0])
{
...
}
答案 1 :(得分:1)
在if语句中使用==
。对于Eg:
if (fg == x[0]) {
//...........
}
==
会比较,但=
会使fg
等于x[0]
,这就是为什么每次都会变为现实。