我正在製作一個反向波蘭記法計算器的程序,我想知道是否有人可以給我一些提示。計算器將從用戶那裏吸取一行,如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