模拟简单计算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。按要求写一段C++代码
时间: 2024-09-14 20:03:37 浏览: 48
C 语言简单加减乘除运算
在C++中,实现一个简单的计算器程序可以通过读取一行表达式,然后解析并计算出结果。由于问题中提到4种运算符的优先级相同,并且按照从左到右的顺序计算,我们可以不需要考虑运算符优先级的处理,直接按照顺序执行每个运算。下面是一个简单的实现:
```cpp
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main() {
std::string expression;
std::getline(std::cin, expression); // 从标准输入读取一行表达式
std::istringstream iss(expression);
std::vector<int> numbers;
char运算符;
int num;
while (iss >> num) { // 将数字读入到vector中
numbers.push_back(num);
}
iss >> 运算符; // 读取运算符
// 验证运算符是否合法(这里假设输入合法,实际应用中应该进行检查)
int result = numbers[0];
for (size_t i = 1; i < numbers.size(); i++) { // 从第二个数字开始计算
switch (运算符) {
case '+': result += numbers[i]; break;
case '-': result -= numbers[i]; break;
case '*': result *= numbers[i]; break;
case '/': result /= numbers[i]; break;
default: break; // 未定义运算符的处理
}
}
std::cout << "计算结果是: " << result << std::endl;
return 0;
}
```
这段代码首先读取用户输入的一行字符串,然后通过`std::istringstream`将输入的字符串解析为数字和运算符,并将它们分别存储在`std::vector<int>`和`char`变量中。之后,使用一个循环来遍历所有数字,并根据运算符对它们进行计算。
需要注意的是,该代码没有处理输入错误和异常情况(如除以零),在实际应用中应当增加相应的错误处理逻辑。
阅读全文