使用 cin - C 进行良好的输入验证循环
输入验证
使用输入时对于用户来说,验证输入对于确保数据完整性和防止错误至关重要。一种有效的方法是使用循环重复提示用户,直到提供有效的输入。
建议的循环
问题提出了一个用于输入验证的循环:
int taxableIncome; int error; // input validation loop 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);
常用方法
虽然循环有效,有更常见且可以说更好的方法来进行输入验证。
异常处理
异常处理提供了一种更直接的方法来处理输入错误。使用 istringstream 和 try-catch 块,我们可以验证输入并处理错误,而无需依赖错误代码。例如:
int taxableIncome; string input; while (true) { cout << "Please enter in your taxable income: "; getline(cin, input); istringstream iss(input); if (!(iss >> taxableIncome)) { cout << "Please enter a valid integer" << endl; continue; } break; }
带验证的无限循环
另一种方法是使用无限循环,不断验证输入并提示用户根据需要进行更正。
int taxableIncome; while (true) { 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 中实现稳健的输入验证循环?的详细内容。更多信息请关注PHP中文网其他相关文章!