c++读取输入字符串中每个元素,用于实现计算器
时间: 2024-09-23 17:11:55 浏览: 34
在C++中,如果你想实现一个简单的计算器,允许用户输入一系列算术运算表达式,你可以使用`cin`从用户那里获取输入,然后逐个处理字符串中的元素。这里是一个基础的示例,展示了如何处理加法和减法操作:
```cpp
#include <iostream>
#include <sstream>
// 将字符串解析成两个整数和操作符
std::pair<int, int> parse_input(const std::string& input) {
std::istringstream iss(input);
int num1, num2;
char op;
if (!(iss >> num1 >> op >> num2)) { // 检查是否成功解析
throw std::runtime_error("Invalid input format");
}
return {num1, num2};
}
int calculate(const std::pair<int, int>& operands) {
switch (operands.second) {
case '+':
return operands.first + operands.second;
case '-':
return operands.first - operands.second;
default:
throw std::invalid_argument("Unsupported operator");
}
}
int main() {
std::string expression;
while (true) {
std::cout << "Enter an arithmetic expression (or 'quit' to exit): ";
getline(std::cin, expression);
if (expression == "quit") break;
try {
auto result = calculate(parse_input(expression));
std::cout << "Result: " << result << "\n";
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
}
}
return 0;
}
```
在这个例子中,我们先解析输入的字符串成两个数字和一个运算符,然后根据运算符计算结果。如果输入格式错误或运算符不支持,我们会捕获异常并给出错误信息。
阅读全文