C++输入计算表达式输出计算结果
时间: 2024-10-13 20:14:30 浏览: 27
在C++中,计算表达式的步骤通常包括读取用户输入、解析表达式并进行运算。可以使用基本的I/O操作如`cin`来获取用户输入,并利用栈或递归来解析表达式。这里是一个简单的示例,使用`istringstream`来处理字符串输入:
```cpp
#include <iostream>
#include <sstream>
#include <cctype>
// 判断字符是否为数字或运算符
bool is_number(char c) {
return std::isdigit(c) || (c == '-' && std::isdigit(*(c + 1)));
}
// 计算两个数的结果
double calculate(double a, char op, double b) {
switch (op) {
case '+': return a + b;
case '-': return a - b;
case '*': return a * b;
case '/':
if (b != 0) return a / b;
else throw "Division by zero error!";
}
}
int main() {
std::string input;
std::getline(std::cin, input); // 获取一行输入
double num = 0.0;
bool first_num = true;
double result = 0.0;
char current_op = '+';
for (char c : input) {
if (is_number(c)) {
if (first_num) {
num = num * 10 + (c - '0');
first_num = false;
} else {
num *= 10;
num += (c - '0');
}
} else if (!isspace(c)) { // 遇到非空格和非数字字符
result = calculate(result, current_op, num);
num = 0.0;
first_num = true;
current_op = c;
}
}
// 处理最后一个运算
if (!first_num) result = calculate(result, current_op, num);
std::cout << "Result: " << result << std::endl;
return 0;
}
```
这个程序会接收用户输入的一行文本表达式,例如 `5+3*2`,然后计算并输出结果。
阅读全文