+ 4
Please Modify My Code
How to Make Calculator Taking input in 1 line using C++ https://sololearn.com/compiler-playground/cpLVlpycztIs/?ref=app
8 Answers
+ 3
Try this:
#include <iostream>
#include <sstream>
using namespace std;
void Calculator(float num1, char op, float num2)
{
float result;
switch (op)
{
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
cout << "Please Enter Correct Operation";
return;
}
cout << result;
}
int main()
{
string input;
getline(cin, input);
istringstream iss(input);
float num1, num2;
char op;
if (iss >> num1 >> op >> num2) {
Calculator(num1, op, num2);
} else {
cerr << "Invalid input format." << endl;
}
}
+ 3
Jerry Hobby No My Intension Is not to spam I just wanted it to reach question to everyone and i dont thing anything wrong in it am not spamming
+ 3
Shashikant Pandey
you should mark Jerry Hobby's answer as best. I only extended his suggestion... my code was only to show how istringstream could be used in a while loop.
+ 2
Please don't spam your tags like this. You asked a C++ question but added tags for every other word you could think of.
+ 2
Jerry Hobby Thank You Your Code Is Working As I Wanted
+ 2
//or a while loop for multiline input
#include <iostream>
#include <sstream>
using namespace std;
void Calculator(float num1, char op, float num2){
float result;
switch (op){
case '+':
result = num1 + num2; break;
case '-':
result = num1 - num2; break;
case '*':
result = num1 * num2; break;
case '/':
result = num1 / num2; break;
default:
cout << "Please Enter Correct Operation";
}
cout << result << '\n';
}
int main(){
string input;
float num1, num2;
char op;
istringstream iss;
while(getline(cin, input)){
iss.clear();
iss.str(input);
if(iss >> num1 >> op >> num2){
cout<<num1<<" "<<op<<" "<<num2<<" = ";
Calculator(num1, op, num2);
}
else
cerr << "Invalid input format." << endl;
}
}
/*
sample input
1 + 1
3 - 1
4 / 2
2 * 5
*/
+ 2
Bob_Li Thank You For Always Helping.
0
if you only want to process 1 equation, you can also write
cin >> num1 >> op >> num2;