我修复了 -'0' 错误,现在我的输出与我的输入有些相关。我相信它将我的第一个“c”值乘以 10,而不是其他值。如何获得像 143 这样的数字的正确值以计算到我的输出中?
#include <vector>
#include <string>
#include <iostream>
using namespace std;
class token {
public: char kind;
char value;
};
int main(){
vector<token> vt;
char c;
token t;
int res = 0;
while (cin>>c){
if(c!= '+' && c!= '-' && c!= '='){
res = res*10+c-'0';
}
else {
t.kind = c;
t.value = res;
vt.push_back(t);
res = 0;
}
if (c=='=')
break;
}
int num = vt[0].value-'0';
for(int i=0; i<vt.size(); i++){
if (vt[i].kind=='+')
num+=vt[i+1].value-'0';
if (vt[i].kind=='-')
num-=vt[i+1].value-'0';
}
cout<<num;
system("pause");
}