ホームページ >バックエンド開発 >C++ >C で二重入力を適切に検証するにはどうすればよいですか?

C で二重入力を適切に検証するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 15:01:111034ブラウズ

How to Properly Validate Double Input in C  ?

C でユーザー入力を Double として検証する方法

ユーザー入力を扱うときは、入力を検証してその有効性を確認することが重要です。 C では、ユーザー入力を double として検証することは、さまざまな方法で実現できます。一般的なアプローチの 1 つは、以下のコード スニペットに示すように、cin 演算子を使用することです。

double x;

while (1) {
    cout << ">";
    if (cin >> x) {
        // valid number
        break;
    } else {
        // not a valid number
        cout << "Invalid Input! Please input a numerical value." << endl;
    }
}

ただし、このコードでは、「無効な入力!」が出力され続けるという問題が発生する可能性があります。ステートメントを使用して、別の入力を求めるプロンプトを禁止します。これに対処するには、次の変更を行うことができます:

...
else {
    // not a valid number
    cout << "Invalid Input! Please input a numerical value." << endl;
    cin.clear();
    while (cin.get() != '\n') ; // empty loop
}
...

この変更には 2 つの重要な手順が含まれます:

  1. エラー状態のクリア: cin.clear () は、無効な入力が発生したときに設定されたエラー状態をクリアするために使用されます。これにより、プログラムはエラー フラグに干渉されることなく入力の読み取りを続けることができます。
  2. 空のループ: while (cin.get() != 'n') ;ループは、無効な入力と同じ行に入力された残りの文字を消費する空のループです。これにより、無効な文字が入力バッファから確実に削除され、プログラムは次の入力を読み取る準備が整います。

以上がC で二重入力を適切に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。