ホームページ > バックエンド開発 > C++ > 「>>」演算子を使用した後に「getline」で入力を求めるプロンプトが表示されないのはなぜですか?

「>>」演算子を使用した後に「getline」で入力を求めるプロンプトが表示されないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-30 11:26:11
オリジナル
651 人が閲覧しました

Why Doesn't `getline` Prompt for Input After Using the `>>` オペレーター?
>` 演算子? " />

getline が入力を要求しない

このコード スニペットでは、>> 演算子を使用した後に getline を使用すると問題が発生します。 ; が入力の読み取りに使用され、ユーザーの入力の後に改行文字が入力バッファーに残ります。この動作は、getline がすぐに呼び出される場合に問題になります。その後、入力行を読み取る必要があるため、改行文字が見つかり、ユーザーにプロンプ​​トを表示せずに終了します。

解決策:

この問題を解決するには、次の方法があります。 2 つの実行可能な解決策:

  1. 無視を使用してNewline:
    getline を使用する前に、ignore を呼び出して入力バッファから改行文字を消費します。

    cin.ignore();
    getline(cin, mystr);
    ログイン後にコピー
  2. getline を排他的に使用します:
    >> と getline を混合する代わりに、getline を排他的に使用してすべての入力を読み取ります。コードを削除し、改行文字に関連する潜在的な問題を排除します。

    getline(cin, name);
    getline(cin, i);
    getline(cin, mystr);
    ログイン後にコピー

以上が「>>」演算子を使用した後に「getline」で入力を求めるプロンプトが表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート