A simple calculator
Enter this: 9+1+2+1/2*2 and press enter
Code:
#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');
}