C の cin を使用した優れた入力検証ループ
C の初心者として、効果的な入力検証手法を理解することは非常に重要です。これは、標準入力ストリーム cin を使用する場合に特に重要です。この記事では、ユーザー入力を検証するための一般的なループベースのアプローチを検討し、よりクリーンで簡潔であると考えられる代替アプローチに焦点を当てます。
元のループ:
構築した入力検証ループは、do-while ループを使用して、ユーザーに入力を繰り返し要求し、エラー:
int taxableIncome; int error; do { error = 0; cout << "Please enter in your taxable income: "; cin >> taxableIncome; if (cin.fail()) { cout << "Please enter a valid integer" << endl; error = 1; cin.clear(); cin.ignore(80, '\n'); } } while (error == 1);
代替アプローチ:
代替アプローチには、for ループを使用し、ループ内のエラーについて cin 入力ストリームをチェックすることが含まれます:
int taxableIncome; for (;;) { cout << "Please enter in your taxable income: "; if (cin >> taxableIncome) { break; // Valid input received } else { cout << "Please enter a valid integer" << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } }
比較:
両方のアプローチ入力検証の目的は達成できますが、代替アプローチには次の利点があります。
結論:
元のループは入力を検証するための機能的な方法ですが、代替アプローチは、そのシンプルさと柔軟性により多くの C プログラマに好まれています。不要な変数を削除し、標準ライブラリ関数を使用することにより、入力検証のためのより合理化された効率的なソリューションが提供されます。
以上がC の `cin` を使用して堅牢な入力検証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。