cin für ein int, das ein char eingibt, bewirkt, dass die Schleife, die die Eingabe überprüfen soll, wild wird

Dies ist eine Funktion meines Spiels und es wird nach Eingabe und Cin in "iAuswahl" gefragt! Dann prüft die while-Schleife, ob es sich um einen der von mir gewünschten Werte 1 bis 9 handelt, wenn sie nicht aktiviert ist, und soll nach neuen Eingaben fragen. Hexe tut es für int. Aber wenn ich ein Zeichen wie "r" eingebe, wird es verrückt und ich bekomme mein Cout zurück und überspringe das Kino! Meine Fragen sind: Warum macht es das und wie höre ich damit auf?

void zug(string sSpieler, int iDran){
    int iAuswahl;
    char cXO = 'O';

    if (iDran == 1)
    {
        cXO = 'X';
    }

    cout << sSpieler << ", Sie sind am Zug. Bitte waehlen sie eins der Felder.\n" << endl;
    grafik();
    cout << "Sie sind >> " << cXO << " <<." << endl;
    cin >> iAuswahl;
    cout << endl;

    while ( 
        iAuswahl != 1 
        && iAuswahl != 2 
        && iAuswahl != 3 
        && iAuswahl != 4 
        && iAuswahl != 5 
        && iAuswahl != 6 
        && iAuswahl != 7
        && iAuswahl != 8 
        && iAuswahl != 9
    )
    {
        cout << "Kein gültiges Feld bitte wählen sie noch einmal!\n" << endl;
        cin >> iAuswahl;
    }
    feldfuellen(iAuswahl, cXO);
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage