-'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");
}