编写一个简单的计算器程序,要求用户输入两个整数,然后选择一个运算(加法、减法、乘法、除法)。程序需要处理以下异常情况:除数为零时抛出异常;用户输入的不是整数时抛出异常。应用的C++知识
时间: 2024-12-01 07:29:04 浏览: 24
编写一个简单的计算器程序,你可以按照以下步骤用C++实现:
```cpp
#include <iostream>
#include <stdexcept>
int main() {
int num1, num2;
char operation;
// 输入操作符并检查是否为有效选项
std::cout << "请输入你要进行的运算 (+, -, *, /) : ";
if (!(std::cin >> operation && (operation == '+' || operation == '-' || operation == '*' || operation == '/')))
throw std::invalid_argument("无效的操作符,请输入 +, -, *, 或 /");
// 输入第一个整数
std::cout << "请输入第一个整数: ";
if (!(std::cin >> num1))
throw std::invalid_argument("输入错误,非整数");
// 输入第二个整数
std::cout << "请输入第二个整数: ";
if (!(std::cin >> num2))
throw std::invalid_argument("输入错误,非整数");
try {
switch (operation) {
case '+':
std::cout << "结果是: " << num1 + num2 << std::endl;
break;
case '-':
std::cout << "结果是: " << num1 - num2 << std::endl;
break;
case '*':
std::cout << "结果是: " << num1 * num2 << std::endl;
break;
case '/':
if (num2 != 0)
std::cout << "结果是: " << num1 / num2 << std::endl;
else
throw std::runtime_error("除数不能为零");
break;
default:
throw std::runtime_error("未知的操作符");
}
} catch (const std::exception& e) {
std::cerr << "错误: " << e.what() << std::endl;
}
return 0;
}
```
在这个程序中,我们首先获取用户输入的操作符和两个整数。然后,根据操作符执行相应的计算。如果用户输入了无效的操作符或非整数,我们会捕获`std::invalid_argument`或`std::invalid_argument`异常,并给出相应提示。对于除法操作,我们特别检查了除数是否为零,如果是,则抛出`std::runtime_error`异常。
阅读全文