我一直试图将其编码为C ++的初学者程序,以帮助我更多地了解该语言,但我真的不知道该如何解决。
基本上,程序只需要接受'+','*','/','%'或数字,否则,如果用户输入字母或单词,则程序将说输入无效。
这是我到目前为止所做的
#include <iostream>
#include <string>
using namespace std;
int main()
{
string x;
cout<<"Enter expression: ";
getline(cin,x);
if(x.find('*') != string::npos){
cout<<"Multiplication";
}else if(x.find('/') != string::npos){
cout<<"Division";
}else if(x.find('%') != string::npos){
cout<<"Modulo";
}else if(x.find('+') != string::npos){
cout<<"Addition";
}else{
cout<<"Invalid!";
}
return 0;
}
答案 0 :(得分:0)
调用std::getline()
后,可以将x
放入std::istringstream
中,然后根据需要从中读取整数和字符,例如:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string x;
cout << "Enter expression: ";
getline(cin, x);
istringstream iss(x);
int value1, value2;
char op;
if (iss >> value1 >> op >> value2)
{
switch (op)
{
case '*':
cout << "Multiplication = " << value1 * value2;
break;
case '/':
cout << "Division = " << value1 / value2;
break;
case '%':
cout << "Modulo = " << value1 % value2;
break;
case '+':
cout << "Addition = " << value1 + value2;
break;
default:
cout << "Invalid operation!";
break;
}
}
else
cout << "Invalid expression!";
return 0;
}