cin pour un int de l'entrée d'un char causes de la Boucle qui est censé vérifier l'entrée d'aller sauvage

C'est une fonction de mon jeu, il vous sera demander pour l'entrée et la cin en "iAuswahl"!
Puis la boucle while est vérifie si c'est une des Valeurs que je veux 1-9, si non, elle s'active et est censé demander pour la nouvelle entrée. Sorcière pour int.
Mais si je saisie un char comme r il va devenir fou et juste continuer à me redonner de cout et de sauter la cin!
Mes questions sont pourquoi faut-il faire et comment dois-je l'arrêter?

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);
}

OriginalL'auteur Jens Krüger | 2013-08-23