Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;查找以构建单线计算器_C++ - Fatal编程技术网

C++ C++;查找以构建单线计算器

C++ C++;查找以构建单线计算器,c++,C++,假设输入是 1+或-或*或/ 如何识别一行代码中的不同运算符。 如果输入为2+3,如果有多行输入为2*3、2/3等,我如何识别2+3。如果数字真的很大,我不能使用索引数字 基本上,我正在尝试创建一个单行计算器,如何在cpp中识别这些运算符?您提到的单行代码,我将其理解为单行输入。阅读一行文本包括std::string和std::getline: std::string line_of_code; std::getline(std::cin, line_of_code); 下一步是解析代码行:

假设输入是 1+或-或*或/ 如何识别一行代码中的不同运算符。 如果输入为2+3,如果有多行输入为2*3、2/3等,我如何识别2+3。如果数字真的很大,我不能使用索引数字 基本上,我正在尝试创建一个单行计算器,如何在cpp中识别这些运算符?

您提到的单行代码,我将其理解为单行输入。阅读一行文本包括
std::string
std::getline

std::string line_of_code;
std::getline(std::cin, line_of_code);
下一步是解析代码行:

整数1;
整数2;
char op;
std::istringstream输入\ U流(\代码的\行);
//读入第一个数字;
输入\u流>>编号1;
//读入运算符
输入流>>操作;
//读入第二个数字;
输入\u流>>编号2;
//决定如何处理操作员:
int答案;
开关(op)
{
案例“*”:答案=number1*number2;中断;
案例“/”:答案=number1/number2;中断;
案例“+”:答案=number1+number2;中断;
案例'-':答案=number1-number1;中断;
}

std::cout这可能需要比单行/语句更多的代码,除非您使用可以在单行/语句中执行的第三方数值表达式解析器;int main(){int a;char op;int b;double sum;cin>>a>>op>>b;if(op='+'){sum=a+b;}else if(op='-'){sum=a-b;}else if(op=''='{sum=ab;}else if(op='/'){double sum=a/b;}else{cout这就是我使用的方法,它是有效的。好的,你实际上指的是“一行输入”,而不是“一行代码”?你应该让你的问题更清楚。此外,既然你已经自己找到了解决方案,你的评论应该转移到答案上,请参见StackOverflow。要在编程行业取得任何进展,你需要先学会(重新)搜索。例如,在互联网上搜索“c++计算器示例”。另请参见“分流场c++”.
int number1;
int number2;
char op;
std::istringstream input_stream(line_of_code);
// Read in first number;
input_stream >> number1;
// Read in operator
input_stream >> op;
// Read in second number;
input_stream >> number2;

// Decide how to process the operator:
int answer;
switch (op)
{
  case '*': answer = number1 * number2; break;
  case '/': answer = number1 / number2; break;
  case '+': answer = number1 + number2; break;
  case '-': answer = number1 - number1; break;
}
std::cout << "Result: " << answer << "\n";