getline() 入力の問題 [重複]
getline() を使用して文字列変数 (str) のユーザー入力を取得すると、改行文字の動作に注意することが重要です。数値を取得した後、改行文字が入力バッファに残ります。これにより、後続の getline() 呼び出しがすぐに空の文字列で返される可能性があります。
提供されたコードでは、数値入力の後の改行は消費されず、导結果getline(cin, str) はすぐに空の文字列で返されます。 string.
解決策:
改行文字をスキップして適切な getline() を確保するには動作を変更するには、ws (空白) マニピュレータを使用します。
cout << "Enter number:"; cin >> number; cout << "Enter name:"; cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); getline(cin, str);
cin.ignore() ステートメントは、入力バッファ内の次の改行までの残りの文字をすべて読み取って破棄し、改行を効果的に消費します。
以上が数値入力後に「getline()」が空の文字列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。