4

なぜ 2 回必要なのかわかりません。これは私が読んでいる本からの引用です。

cin.get() ステートメントは次のキーストロークを読み取るため、このステートメントにより、Enter キーが押されるまでプログラムが待機します。(Enter キーを押すまでキーストロークはプログラムに送信されないため、別のキーを押しても意味がありません。)プログラムが通常の入力後に未処理のキーストロークをそのままにしておく場合は、2 番目のステートメントが必要です。たとえば、数字を入力する場合は、数字を入力してから Enter キーを押します。プログラムは数字を読み取りますが、Enter キーストロークは未処理のままにし、最初の cin.get() によって読み取ります。

私はそれをソースコードに配置しましたが、それが2回存在する意味がわかりません。

いくつかの数字を入力してEnterキーを押すとプログラムが終了しますが、終了する前に何も入力されていない場合はEnterキーを2回押すだけです.

そのポイントは、プログラムを一時停止することです。なぜそれを2回使用するのですか?

4

1 に答える 1

9

cin.get();入力から単一の文字を取得します。したがって、入力に5\n(\nを押すのと同等) がある場合は、が返され、別の場合は が返されます。ループなどで複数の数字を次々と読んでいる場合、文字を忘れると問題が発生する可能性があります。ENTERcin.get();5cin.get();\nwhile\n

cin.ignore(256, '\n');必要な文字や気になる文字を読み終えたら、を使用すると、この問題を修正することもできます。

于 2012-05-18T16:21:51.637 に答える