ホームページ > バックエンド開発 > C++ > C で整数を読み取った後に「getline()」が入力をスキップするのはなぜですか?

C で整数を読み取った後に「getline()」が入力をスキップするのはなぜですか?

DDD
リリース: 2024-12-22 22:28:13
オリジナル
360 人が閲覧しました

Why Does `getline()` Skip Input After Reading an Integer in C  ?

getline() の入力の問題

C プログラムで、getline() を使用してユーザー入力を読み取るときに、特有の動作が発生する場合があります。 。具体的には、整数を要求する場合、その後に getline(cin, str) を入力し、次に別の整数を入力すると、「str」を入力する前に「アカウント番号を入力してください」が表示されることがわかります。

これは、getline() が最初の整数の後に入力された改行文字もキャプチャするために発生します。これを回避するには、「str」を読み取る前に空白をスキップするように cin に指示できます。その方法は次のとおりです。

ここでは、getline() がユーザーの入力を読み取る前に、cin.ignore() が改行を含む空白をスキップします。

あるいは、cin.get を使用することもできます。 () で改行文字を明示的に読み取って破棄します:

このアプローチでは、 newline は消費され、getline() はそれを読み取ろうとしません。

以上がC で整数を読み取った後に「getline()」が入力をスキップするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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