>`? " />
getline() と C のコンソール入力
C では、 getline() 関数を使用してストリームからテキスト行を抽出します。ただし、ループ内で複数回使用すると、動作する可能性があります。
問題:
文字列の場合は getline() を使用し、整数と倍精度の場合は >> を使用してユーザー入力を収集しようとすると、ユーザーは最初の文字列を入力できません。代わりに、コンソール カーソルは 2 番目の getline() の後に次の入力プロンプトにジャンプします。 call.
説明:
この問題は、getline() 演算子と >> 演算子が混在していることに起因し、先頭の空白をスキップして入力を読み取ります。ただし、入力ストリームに改行文字 (n) が残ります。
getline() の場合>> の後に呼び出されると、改行文字が空の文字列として読み取られるため、望ましくない動作が発生します。
解決策:
string line; getline(cin, line); int value = stoi(line); // Parse the number from the string
以上が「>>」を使用した後、getline() がループ内で予期しない動作をするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。