0

私はcin.getがどのように機能するかをテストする際にさまざまなことを試みていて、このパズルにたどり着きました。

char input[5];
int value;

cout << "enter something:";
cin.get(input,5);
cout << input;

cin.ignore();
cin.get();  // this never fires with only enter

何かを入力すると、最後のcin.getで一時停止します。Returnキーを押すだけでは、最後のcin.getがトリガーされて終了することはありません。何が起こっているのか知りたいだけです。

4

1 に答える 1

1

cin.get()が何も読み取れなかった場合、フェイルビットが設定されるため、次のcin.get()も失敗します。

次のcin.get()を機能させる場合は、最初にcin.clear()を呼び出してフェイルビットをクリアする必要があります。

ps。詳細な説明については、こちらを確認してください。

于 2012-07-23T03:26:52.610 に答える