我正在开发一个制作反向波兰符号计算器的程序,我想知道是否有人可以给我一些提示。计算器将从用户那里获取一行,例如2 3 + 7 4 - *
;中间有空格,我想在每次操作后打印一个结果。
这是我的代码的一部分
#include <iostream>
#include <string>
#include <stack>
#include <sstream>
using namespace std;
int main() {
stack<float>stack;
int i;
float num,result,first,second;
char op,ch;
string str;
getline(cin,str);
istringstream is(str);
for(int i=0;i<str.size();i++) {
is>>num;
stack.push(num);
}
for (i=0;i<str.size();++i) {
ch=str[i];
}
if (ch=='+'||'-'||'*'||'/') {
if (ch='+') {
first=stack.top();
stack.pop();
second=stack.top();
stack.pop();
result=first+second;
stack.push(result);
cout<<result;
}
// } // missing from question
//}
结果我得到了奇怪的数字。我在我的堆栈中阅读正确吗?