Ik heb de volgende code:
#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;
}
Het maakt niet uit welke invoer ik geef, true
wordt altijd geretourneerd. Staat mijn syntaxis uit? Alle hulp zou op prijs worden gesteld.
Antwoord 1, autoriteit 100%
In C++ gebruik je ==
ter vergelijking. De =
is een opdracht. Het kan worden gebruikt in de voorwaarde van een if
-statement, maar het wordt geëvalueerd tot true
tenzij het teken '\0'
is (niet '0'
, zoals in jouw geval):
if(fg == x[0])
{
...
}
Antwoord 2, autoriteit 6%
Binnen if-statement gebruik ==
. Voor bijv.:
if (fg == x[0]) {
//...........
}
==
vergelijkt, maar =
maakt fg
gelijk aan x[0]
, en daarom word elke keer waar.