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

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

Barbara Streisand
リリース: 2024-12-10 15:43:09
オリジナル
242 人が閲覧しました

How to Reliably Validate Double Input in C  ?

C の Double としてのユーザー入力の検証

ユーザー入力を検証してその整合性を確認することは、C プログラミングにおいて非常に重要です。浮動小数点値を扱う場合、入力が実際に double であることを確認することが不可欠になります。

ユーザーに double を繰り返し求める次のコード スニペットを考えてみましょう。

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;
    }
}
ログイン後にコピー

ただし、提供されたコードには欠陥があります。ユーザーが無効な入力を入力すると、if ステートメントが失敗し、else ブロックにエラー メッセージが表示されます。ただし、プログラムはユーザーに再度入力を求めるプロンプトを表示しないため、エラー メッセージの無限ループが発生します。

この問題を解決するには、cin.clear() 関数を使用してエラー状態をクリアし、 while (cin.get() != 'n') ;ループして入力バッファを空にします。このようにして、無効な入力があった場合、プログラムはエラー メッセージを表示し、エラー状態をクリアし、無効な入力を破棄し、ユーザーに有効な入力を求めます。

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

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