ホームページ > バックエンド開発 > C++ > C 入力検証ループの効率を向上するにはどうすればよいですか?

C 入力検証ループの効率を向上するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-26 09:45:10
オリジナル
428 人が閲覧しました

How Can I Improve C   Input Validation Loop Efficiency?

C の入力検証ループを使用して入力をシームレスに検証する

C をマスターするための探求では、入力検証が最も重要です。有効なアプローチを見つけましたが、別のオプションを検討してみましょう。

あなたのアプローチ

ループは、間違った入力形式を検出する cin.fail() チェックを中心に展開します。 。整数以外が入力された場合は、エラー メッセージが表示され、cin.clear() および cin.ignore() を使用して入力バッファがクリアされます。このアプローチは合理的ですが、改善できる点がいくつかあります。

代替アプローチ

cin.fail() に依存する代わりに、直接チェックできます。入力操作 (cin >>taxableIncome) が成功したか失敗したか。失敗した場合は、メッセージでエラーを適切に処理し、以前と同様に入力バッファをクリアします。

int taxableIncome;

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

このループを使用することにより、明示的なエラー変数の設定とチェックを回避し、検証プロセスを簡素化します。さらに、numeric_limits::max() を使用して入力バッファをクリアすると、すべての無効な文字が確実に削除されます。

結論

どちらのアプローチも入力検証には効果的です。ただし、改訂されたループでは、より簡潔で読みやすい構文が提供されます。最終的に、最適な方法はユーザーの好みとプログラムの特定の要件によって異なります。

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

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