5

これは私のゲームの関数で、「iAuswahl」への入力と cin を要求します! 次に、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);
}
4

3 に答える 3

0

iAuswahl 変数を使用して、この関数に含まれていない何らかの種類の数学を実行していない場合は、変数を char 変数にするだけです。変数を int にする理由はありません。 int である必要があります。

于 2019-02-03T00:49:33.450 に答える