C++,简单计算器,输入两个数和一个符号,识别后计算结果(加减乘除余),若输入不合要求(数字数量,符号种类,除数为0),给出提示。可循环运行,按z退出
时间: 2024-09-30 09:06:50 浏览: 39
在C++中,我们可以创建一个简单的命令行计算器程序,用于处理用户输入的两个数和运算符。这里是一个基础版本的实现:
```cpp
#include <iostream>
using namespace std;
int main() {
double num1, num2;
char operator_char;
while (true) {
cout << "请输入第一个数 (输入 'z' 退出): ";
if (!(cin >> num1)) { // 检查是否输入有效数字
cout << "错误:无效的数字输入,请重新尝试。\n";
cin.clear(); // 清理输入流错误标志
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 忽略剩余输入
continue;
}
cout << "请输入第二个数 (输入 'z' 退出): ";
if (!(cin >> num2)) {
cout << "错误:无效的数字输入,请重新尝试。\n";
continue;
}
cout << "请输入运算符 (+, -, *, / 或者 %): ";
if (!(cin >> operator_char) || operator_char != '+' && operator_char != '-' && operator_char != '*' && operator_char != '/' && operator_char != '%') {
cout << "错误:无效的运算符,请输入 '+', '-', '*', '/', '%' 中的一个。\n";
continue;
}
switch (operator_char) {
case '+':
cout << "结果: " << num1 + num2 << "\n";
break;
case '-':
cout << "结果: " << num1 - num2 << "\n";
break;
case '*':
cout << "结果: " << num1 * num2 << "\n";
break;
case '/':
if (num2 != 0) {
cout << "结果: " << num1 / num2 << "\n";
} else {
cout << "错误:除数不能为零。\n";
}
break;
case '%':
if (num2 != 0) {
cout << "结果: " << static_cast<int>(num1 % num2) << "\n"; // 强制转换结果为整数
} else {
cout << "错误:除数不能为零。\n";
}
break;
case 'z':
cout << "已退出。\n";
return 0;
default:
cout << "错误:未知的运算符。\n";
}
// 询问用户是否继续,如果输入不是'y',则退出
char continue_choice;
cout << "是否继续?(y/n): ";
cin >> continue_choice;
if (continue_choice != 'y' && continue_choice != 'Y') {
break;
}
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 清空缓冲区
}
return 0;
}
```
在这个程序中,我们首先获取用户的输入,然后检查它是否符合预期的格式。接着,根据运算符执行相应的数学操作,并在每个阶段都提供错误检查。如果用户选择退出,`'z'`会被识别并结束循环。
阅读全文