我正在制作一个反向波兰记法计算器的程序,我想知道是否有人可以给我一些提示。计算器将从用户那里吸取一行,如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
//}
我已经越来越奇异数作为结果的一部分。 我正确读取我的堆栈吗?
为什么你在不可读的方式编写代码? – Shoe 2014-12-11 06:06:08