C の getline() 関数のトラブルシューティング
getline() メソッドを使用してユーザーが入力したメッセージを取得しているときに、一部の開発者が問題に遭遇しました。ここで、メソッドは入力を途中で終了します。
問題: コード:
string messageVar; cout << "Type your message: "; getline(cin, messageVar);
根本的な問題:
cin の場合 >> getline() の前に使用されると、改行文字が入力バッファーに残ります。 getline() が入力を読み取ろうとするときにこの改行はバッファーに残り、即時に終了します。解決策:
この問題に対処するには、次の行を削除することが不可欠です。 getline() を使用する前に入力バッファから改行文字を取得します。これは、cin.ignore() 関数を使用して実現できます。変更されたコード:string messageVar; cout << "Type your message: "; cin.ignore(); // Flushes the newline character getline(cin, messageVar);
以上がC で getline() が入力を途中で終了するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。