关于c语言:计算加减表达式

编写程序,使其能读入并计算一个只包含加减运算的表达式,每一个输入的数据都是浮点数,除第一个数以外,
其余每个数前面都有一个运算符,表达式以分号“;”结束。
例如:
23+43-233+234;

输入输出格式要求:
要求输出小数点后6位。
只输出运算结果,请不要输出其他字符,遇到异常情况(如结尾不是分号等),输出error
例如:
输入:23+43-233+234;回车
输出:67.000000
输入:23+43,回车
输出:error

下面是满分答案,不用谢

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

int main() {
    char exp[10000];
    int cur = 0;
    double res, num;
    char op;
    bool first = true;
    while (cin >> num) {
        if (first) {
            res = num;
            first = false;
        } else {
            res += op == '+' ? num : (-num);
        }
        cin >> op;
        if (op == ';') {
            printf("%.6f\n", res);
            return 0;
        } 
        else if ((op != '+' && op != '-')) {
            cout << "error" << endl;
            return 0;
        }
    }
    cout << "error" << endl;
    return 0;
}


```

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^