验证 C 中的数字输入
在处理整数输入的程序中,确保用户提供有效的数字至关重要。不幸的是,atoi() 函数在处理多位整数时存在不足。本文探讨了验证数字输入的替代方法。
使用失败位
C 的输入流 (cin) 在遇到无法解析的输入时设置失败位。可以利用它来验证输入,如下所示:
int n; cin >> n; if(!cin) { // User did not input a number cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
处理输入溢出
当整数超过最大允许值时,cin 也会设置failbit。为了防止这种情况,请在读取输入之前检查流状态:
while(!cin.eof()) { int n; cin >> n; if(!cin) { // Input error occurred cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } else { // Valid input process(n); } }
此循环继续读取并验证输入,直到到达文件末尾 (EOF)。
其他替代品
以上是如何在'atoi()”之外验证 C 中的数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!