cin для int, вводящего символ, приводит к тому, что цикл, который должен проверять ввод, становится диким
Это функция моей игры, она будет запрашивать ввод и попадать в "iAuswahl"! Затем цикл while проверяет, является ли это одним из значений, которые я хочу 1-9, если нет, он активируется и должен запрашивать новый ввод. Ведьма это делает для Int. Но если я введу символ как r, он сойдет с ума и просто продолжит возвращать мне мой cout и пропустить cin! Мои вопросы: почему он это делает и как мне это остановить?
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);
}