getline() メソッドを利用してユーザー入力を取得しようとすると、プログラムが入力を受け入れずに停止するという予期しない動作が発生する可能性があります。 .
次の例を考えてみましょう。
ユーザーにプロンプトを表示する cout ステートメントの存在にもかかわらず、プログラムは入力を収集せずに途中で終了します。
この問題は、>> の性質により発生します。演算子。入力バッファーに改行文字が残ります。この文字は、入力が改行で終了することを期待する getline() と競合します。
この問題を軽減するには、バッファから改行文字をフラッシュすることが重要です。これは、cin.ignore() メソッドを使用して実現できます。
修正されたコードは次のようになります。
cin.ignore() ステートメントは、バッファから改行文字をクリアします。これにより、getline() が正しく機能するようになります。
以上がC の `getline()` 関数がユーザー入力を受け付けないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。