Hoe vergelijk ik eenvoudig tekens in C++?

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, truewordt 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 truetenzij 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 fggelijk aan x[0], en daarom word elke keer waar.

Other episodes