getline() の入力の問題
C プログラムで、getline() を使用してユーザー入力を読み取るときに、特有の動作が発生する場合があります。 。具体的には、整数を要求する場合、その後に getline(cin, str) を入力し、次に別の整数を入力すると、「str」を入力する前に「アカウント番号を入力してください」が表示されることがわかります。
これは、getline() が最初の整数の後に入力された改行文字もキャプチャするために発生します。これを回避するには、「str」を読み取る前に空白をスキップするように cin に指示できます。その方法は次のとおりです。
ここでは、getline() がユーザーの入力を読み取る前に、cin.ignore() が改行を含む空白をスキップします。
あるいは、cin.get を使用することもできます。 () で改行文字を明示的に読み取って破棄します:
このアプローチでは、 newline は消費され、getline() はそれを読み取ろうとしません。
以上がC で整数を読み取った後に「getline()」が入力をスキップするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。