ホームページ > バックエンド開発 > C++ > C の `cin` を使用してユーザー入力を効果的に検証するにはどうすればよいですか?

C の `cin` を使用してユーザー入力を効果的に検証するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-15 22:13:15
オリジナル
285 人が閲覧しました

How Can I Effectively Validate User Input with `cin` in C  ?

C の cin を使用した入力検証 : 包括的なガイド

入力検証は、無効な入力によってプログラムの整合性が損なわれるのを防ぐ上で重要な役割を果たします。 。 C で入力検証によく使用される手法の 1 つは、cin ストリームを利用することです。

コード スニペットで構築されたループは、入力検証に有効な方法です。 do-while ループを使用して、無効な入力を効果的に処理しながら、ユーザーに課税所得の入力を継続的に求めます。入力が有効な整数でない場合は、エラー メッセージが表示され、ループを確実に続行できるように cin がクリアされて無視されます。

ただし、より慣用的または効率的であると考えられる別のアプローチもあります。

  • 例外の使用: プログラマの中には、I/O エラーの処理に例外を使用することを好む人もいます。ループ内のエラーをチェックする代わりに、C は潜在的な入力の問題を処理するためにキャッチできる例外を提供します。
  • 単純化されたループ: あるいは、エラーを削除してループを単純化することもできます。変数を使用し、読み取られた入力をループ条件に直接組み込みます。これにより、コードが簡素化され、エラーを追跡するための追加の変数が不要になります。

簡略化されたループの例を次に示します。

for (;;) {
    cout << "Please enter in your taxable income: ";
    if (cin >> taxableIncome) {
        break;
    } else {
        cout << "Please enter a valid integer" << endl;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
}
ログイン後にコピー

最終的には、入力検証に最適なアプローチです。個人の好みとプログラムの特定の要件によって異なります。元のコードで示されているループは有効で機能的なソリューションですが、代替案はわずかな変更と効率性を提供します。

以上がC の `cin` を使用してユーザー入力を効果的に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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