J'ai le code suivant:
#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;
}
Peu importe quelle entrée je donne, true
est toujours retourné. Ma syntaxe est-elle désactivée? Toute aide serait appréciée.
En C++, vous utilisez ==
en comparaison. Le =
est une tâche. Il peut être utilisé dans la condition d'une instruction if
, mais il va être évalué à true
à moins que le caractère ne soit '\0'
(ne pas '0'
, comme dans votre cas):
if(fg == x[0])
{
...
}
Dans l'instruction if, utilisez ==
. Par exemple:
if (fg == x[0]) {
//...........
}
==
compare, mais =
rend fg
égal à x[0]
, et c'est pourquoi vous devenez vrai à chaque fois.