ご挨拶!
今回は余分なイントロをカットして、ポイントにまっすぐに行きましょう。
isalnumメソッドを使用したC++で問題が発生しました。
コード:
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)で質問を繰り返すことです。ただし、charまたはstring値を入力すると、無限にループし続けます。100%確信はありませんが、問題がある場合は、非int値がplayAgainstの値としてすでに保存されていることは明らかです。保存する前に、入力値がintであるかどうかをコードのこのビットで確認するにはどうすればよいですか。それ?
または、char / stringとして保存してからチェックする唯一の可能性はありますか?
後者の場合、新たな問題が発生します。isalnumは、少なくとも私が知っていることから、パラメーターとしてintのみを受け入れます。その文字列または文字がintであるかどうかを確認するにはどうすればよいですか?
お読みいただきありがとうございます。そしてうまくいけば、私はすぐに答えとして返信を受け入れるでしょう^^
答えてくれてありがとう。私は欲しいものを手に入れました、そしてすべてが解決されました。
私が受け入れられた答えを選んだ理由は、まあ...最初は、それが私のコードを私が望むように機能させたからです。でも複数の答えを受け入れたいです。