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