-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOutput.cpp
71 lines (63 loc) · 1.87 KB
/
Output.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//
// Created by Rainy on 1/22/17.
//
#include "Output.h"
#include <iostream>
#include <sstream>
stringstream stream;
string Temp2,Temp1;
double First,Second,TempResult,Temp3;
void Output::Calculate() {
string::iterator i = Postfix.begin();
while (i<Postfix.end()){
while(*i == ' '&&i<Postfix.end()-1)
i += 1;
Temp2 = *i;
bool IsNumber = true;
if(!stk.empty()&&Temp2 == "+") {
cout<<"Get +"<<endl; //test
First = stk.top();
stk.pop();
Second = stk.top();
stk.pop();
TempResult = First + Second;
stk.push(TempResult);
IsNumber = false;
i += 1;
}
if(!stk.empty()&&Temp2 == "*") {
cout<<"Get *"<<endl; //test
First = stk.top();
stk.pop();
Second = stk.top();
stk.pop();
TempResult = First * Second;
stk.push(TempResult);
IsNumber = false;
i += 1;
}
while(IsNumber){
cout<<"Get Numbers"<<endl; //test
// Temp1.clear();
Temp1.append(Temp2);
//stream<<Temp1;
//stream>>Temp3;
cout<<"Temp1:"<<Temp1<<endl;
i += 1;
Temp2 = *i;
if(*i == ' ') {
stream.clear();
stream << Temp1;
stream >> Temp3;
cout << "Get:" << Temp3 << endl;
stk.push(Temp3);
Temp1.clear();
IsNumber = false;
}
}
}
Result = stk.top();
}
void Output::Display() {
cout<<Result<<endl;
}