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中文网其他相关文章!