Write a program in c plus plus to read 2 numbers and an operator then calculate result defined of this operator?
#include<iostream>
#include<string>
#include<sstream>
unsigned input_num (std::string prompt)
{
unsigned id = 0;
while (1)
{
std::cout<<prompt<<": ";
std::string input="";
getline (std::cin, input);
std::stringstream ss (input);
if (ss>>id)
break;
std::cout<<"Invalid input.\n";
}
return (id);
}
char input_op (std::string ops)
{
char op = 0;
while (1)
{
std::cout<<"Enter an operator ("<<ops<<"):
";
std::string input="";
getline (std::cin, input);
std::stringstream ss (input);
if (ss>>op && ops.find (op) !=
std::string::npos)
break;
std::cout<<"Invalid input.\n";
}
return (op);
}
int main()
{
unsigned num1 = input_num ("Enter a number");
unsigned num2 = input_num ("Enter another number");
// division is invalid if num2 is zero
char op = input_op (num2?"+-*/":"+-*");
unsigned result = 0;
switch (op)
{
case ('+'): result = num1+num2; break;
case ('-'): result = num1-num2; break;
case ('*'): result = num1*num2; break;
case ('/'): result = num1/num2;
}
std::cout<<num1<<op<<num2<<'='<<result<<std::endl;
}