0

私は C++ ゲームを作成していますが、ある時点でユーザーは int を入力する必要があります。プレイヤーが char を入力すると、ゲームが異常終了します。

このグリッチが何であるかを理解する代わりに、プレーヤーが文字を入力したかどうかを感知し、そこから解決したいと考えています。

4

3 に答える 3

3

cin を使用して入力を取得している場合、最も簡単な解決策は次のとおりです。

int input;
cin >> input;
if (!cin)
    //handle char not being an int
//continue

この背後にあるトリックは、入力を適切な型に変換できない場合、cin が実際に失敗状態になることです。ただし、ゲームの動作方法と入力のコンテキストによっては、これでは不十分な場合があります。cin を使用していない場合は、使用しているストリームが同じ動作をするかどうかを確認する必要があります。

于 2013-08-21T18:04:08.740 に答える
0

どの形式の入力を使用しているかはわかりませんが、コンソール ベースの場合は、次の方法が役立つ場合があります。

http://www.parashift.com/c++-faq/istream-and-ignore.html

于 2013-08-21T17:58:42.480 に答える