A simple calculator
Enter this: 9+1+2+1/2*2 and press enterCode:#include<iostream> using namespace std; int main() { char buffer[256]; do { int v = 1; cin >> buffer; bool opF = false; bool opS = false; bool opT = false; bool opA = false; for(int i =0; i < strlen(buffer); i++) { char op = buffer[i]; switch ( op) { case '+': { if( opF ) { v += buffer[i+1]-'0'; opF = false; } else { v+= buffer[i-1]-'0'; v+= buffer[i+1]-'0'; // opF = true; v--; } opF=true; }break; case '-': { if( opS ) { v -= buffer[i+1]-'0'; opS = false; v+=1; } else { v-= buffer[i-1]-'0'; v-= buffer[i+1]-'0'; // opS = true; v+=2; } opS=true; }break; case '*': { if( opT ) { v *= buffer[i+1]-'0'; opT = false; } else { v*= buffer[i-1]-'0'; v*= buffer[i+1]-'0'; // opS = true; // v+=2; } opT=true; }break; case '/' : { if( opA ) { v /= buffer[i+1]-'0'; opA = false; } else { v/= buffer[i-1]-'0'; v/= buffer[i+1]-'0'; // opS = true; // v+=2; } opA=true; }break; default:break; } } cout << v << endl; // cout << buffer << endl; } while(buffer[0] != '0'); }



Reply With Quote

