postfix evaluation

Joined
Apr 19, 2012
Messages
1
Reaction score
0
Hi, i'am trying to read postfix expression from txt file and evaluate it
the input is 10 5 * ,the output should be 50, but it reads only 10 and 5,the problem he can't read operators neither their ascii ,any help?
here's my code
PHP:
#include <iostream> #include <iomanip> #include <fstream> #include<stdio.h> #include<ctype.h> #include<stdlib.h> using namespace std; #define SIZE 40 int stack[SIZE]; int top=-1; void push(int n) { if(top==SIZE-1) { printf("Stack is full\n");  system("pause"); return; } else { top=top+1; stack[top]=n; printf("Pushed element is %d\n",n);  system("pause"); } } int pop() { int n; if(top==-1) { printf("Stack is empty\n");  system("pause"); return 0; } else { n=stack[top]; top=top-1; return(n); } } int main() { int str[50],ch; int i=0; int n,op1,op2; ifstream inFile; ch=str[i]; inFile.open("D:\\me.txt"); if (!inFile) { printf( "Unable to open file"); system("pause"); exit(1); // terminate with error } while (inFile >> ch) { if(ch==43 || ch==45 || ch==47 || ch==42 || ch==94 || ch==37 ) {	 op1=pop();	 op2=pop();	 if (op1<op2)	 {	 n=op1;	 op1=op2;	 op2=n;	 }	 switch(ch)	 {	 case 43:	 n=op1+op2; break;	 case 45:	 n=op1-op2;break;	 case 42:	 n=op1*op2;break;	 case 47:	 n=op1/op2;break;	 case 37:	 n=op1%op2;break;	 case 94:	 n=op1^op2;break;	 	 default:	 {	 printf("The operator is not identified\n");	 system("pause");	 exit(0);break;	 }	 }	 printf("n=%d\n",n);	 push(n);	 system("pause"); }	 else	 {	 n=ch;	 push(n);	 } ch=str[++i]; }inFile.close(); printf("The value of the arithmetic expression is=%d\n",pop()); system("pause"); return 0; }
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top