Привет!
Давайте на этот раз обрежем лишнее вступление и перейдем прямо к делу.
У меня проблема в C ++ с использованием метода isalnum.
код:
int playAgainst = 0;
do
{
cout << "Who do you want to play against?(1/2)\n";
cout << "1: Human player\n";
cout << "2: Computer player\n";
cin >> playAgainst
} while(!isalnum(playAgainst) && playAgainst != 0);
Как видно из кода, я предоставляю пользователю выбор. Играть против человека или против компьютера.
Я хочу, чтобы пользователь вводил что-либо еще, а затем целочисленное значение (cin >> playAgainst), чтобы повторить вопрос. Однако, если я ввожу символ или строковое значение, он продолжает бесконечно повторяться. Я не уверен на 100%, но было бы очевидно, если бы проблема заключалась в том, что значение non int уже сохранено в качестве значения для playAgainst. Это?
Или это единственная возможность сохранить как символ / строку, а затем проверить?
Если последнее имеет место, возникает новая проблема. isalnum принимает только int как параметр, по крайней мере из того, что я знаю. Как я буду проверять, является ли эта строка или символ целочисленным?
Спасибо, что нашли время, чтобы прочитать. И, надеюсь, я скоро приму ответ как ответ ^^
Спасибо всем за ответы.
Я получил то, что хотел, и все было решено.
Причина, по которой я выбрал принятый ответ, хорошо ... потому что изначально он заставил мой код работать так, как я хочу. Я хочу принять несколько ответов, хотя ..