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
結論
どちらのアプローチも入力検証には効果的です。ただし、改訂されたループでは、より簡潔で読みやすい構文が提供されます。最終的に、最適な方法はユーザーの好みとプログラムの特定の要件によって異なります。
以上がC 入力検証ループの効率を向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。