C++中如何处理输入错误的情况?
时间: 2024-10-11 15:03:49 浏览: 49
在C++中处理输入错误通常涉及到异常处理。当用户输入不符合预期格式时,可以捕获`std::cin.fail()`抛出的异常。例如,我们可以使用`try-catch`块来检查输入是否成功,并提示用户重新输入。这里是处理输入错误的一个简单示例:
```cpp
#include <iostream>
#include <limits> // 引入数值限制头文件
int main() {
int a, b;
try {
std::cout << "请输入第一个整数a: ";
std::cin >> a;
if (std::cin.fail()) { // 检查输入是否失败
throw std::invalid_argument("输入无效,请输入一个整数"); // 抛出异常
}
std::cout << "请输入第二个整数b: ";
std::cin >> b;
if (std::cin.fail()) {
throw std::invalid_argument("输入无效,请输入一个整数");
}
} catch (const std::exception& e) {
std::cerr << "错误: " << e.what() << '\n'; // 输出错误信息
std::cin.clear(); // 清除输入流的错误状态
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 清空缓冲区
std::cout << "请输入正确的整数: ";
// 重新开始输入过程
}
int c = a + b;
std::cout << "两数之和为: " << c << std::endl;
return 0;
}
```
在这个例子中,如果用户输入了非整数字符,程序会捕获异常,清除错误状态,然后提示用户重新输入。
阅读全文