长方程加法/减法计算器,从文本文件中提取运算符和数字

long equation addition/subtraction calculator that pulls operator and numbers from a text file

本文关键字:文件 提取 数字 文本 运算符 方程加 计算器      更新时间:2023-10-16

我有这个任务:

我们想做一个简单的计算器,可以加减整数,并且会接受由符号+和-以及非负整数组成的任意长的数学公式。

假设您有一个文件公式.txt其求和公式如下:

   100 + 50 - 25 + 0 + 123 - 1

到目前为止,我已经制作了一个程序来读取文件,并且只找到第一个操作数和两个数字(所以基本上它只做第一个条件,即'100 + 50 - 25'给我150......我只需要帮助了解我的程序在完成第一轮后如何返回......我确定我的开关语句有问题。

非常感谢!

 char op;
    int left_num, right_num, sum;
    sum = 0; 
    while(cin >> left_num >> op >> right_num) { 
    switch(op) {
        case '+':
            sum_new = left_num + right_num;
            sum = sum_new + sum
            break;
        case '-': 
            sum = sum - right_num
            break;
        }
    }

我建议第一个值使用特殊情况。 其余所有项的格式运算符均为

int sum;
std::cin >> sum;  // Read the first value as the sum.
char opr;         // Operator character
int  value;       // New value or term.
while (cin >> opr >> value)
{
  switch (opr)
  {
    case '+': 
      sum += value;
      break;
    case '-':
      sum -= value;
      break;
    default:
      std::cerr << "Invalid operator: " << opr << "n";
      break;
  }
}

sum将始终是操作员的"左侧"。 新值将是运算符的"右侧"。

好吧,你可以按照这条线做一些事情:

1. Read the first operand (let's say num)
2. While there are operator and operands to read
    2.1. Your switch updates the first operand (num)
3. num is the result