error: switch Anzahl ein ganzzahliges C++

Ich habe ein problem beim kompilieren meines C++ - code. Als ich bin immer noch lernen, C++, ich verstehe immer noch nicht, die meisten der erweiterten Befehle noch. Ich habe versucht, erstellen Sie ein Programm, das den Anwender auffordert, Vorname, Nachname, Alter und Geschlecht und die Anzeige zurück an den Benutzer. Dies ist mein Quellcode:

#include <iostream>

int main ()
{
    char firstName[20];
    char lastName[20];
    char age[6];
    char gender[3];

    int i = 0;

    std::cout << "Please enter your full name: ";
    std::cin.getline (firstName, 19, ' ');
    std::cin.getline (lastName, 19);

    std::cout << "Enter your age: ";
    std::cin.getline (age, 5);

    while (i != 1)
    {
        std::cout << "Enter your gender (m/f)";
        std::cin.getline (gender, 2);

        switch (gender)
        {
            case 'm':
                std::cout << "\nHello Mr. ";
                i++;
                break;

            case 'f':
                std::cout << "\nHello Mrs. ";
                i++;
                break;

            default:
                std::cout << "\nThat is not even a gender!\n";
                break;
        }
    }

    std::cout << lastName << "!\n";
    std::cout << "You are " << age << " years old.";

    return 0;
}

Als ich versucht habe zu kompilieren, die dieses, mein compiler gibt mir die folgende Fehlermeldung:

NameAgeQ.cpp: In function 'int main()':
NameAgeQ.cpp:24:15: error: switch quantity not an integer

Ich habe versucht, den code anderer Programme mit der 'switch' - Anweisung vor und es kann mit Zeichen. Jedoch in der bisherigen Programme, die ich erklären würde, 'Geschlecht' als 'char Geschlecht;' anstelle von 'char Geschlecht [];'.

Warum in diesem speziellen Fall ist der 'switch' - Anweisung nicht funktioniert? Ist es nicht die Unterstützung der array-string?

InformationsquelleAutor Xarlexus | 2012-01-18
Schreibe einen Kommentar