c++ - 尝试创建一个基本的计算器
问题描述
但是,当输入“12 + 3”时,它会输出“154”,或者如果我输入“12+1”,它会输出“1312”。乘法似乎也不能始终如一地工作。在大多数情况下,除法似乎还可以
#include <iostream>
int main()
{
int firstNum, secondNum, res;
std::string op;
std::cout << "Enter desired operation ";
std::cin >> firstNum >> op >> secondNum;
if (op=="+")
{
res = firstNum + secondNum;
std::cout << res;
}
else if(op==" - ")
{
res = firstNum - secondNum;
std::cout << res;
}
else if(op==" x ")
{
res = firstNum * secondNum;
std::cout << res;
}
else if(op==" / ");
{
res = firstNum / secondNum;
std::cout << res;
}
return 0;
}
解决方案
4
in154
和12
in1312
是除法的结果。
你有两个错误:
" - "
您在、" * "
和中有多余的空格" / "
,防止它们匹配到op
。- 后面有一个额外的分号
else if(op==" / ")
,让它无条件地进行除法。
试试这个:
#include <iostream>
int main()
{
int firstNum, secondNum, res;
std::string op;
std::cout << "Enter desired operation ";
std::cin >> firstNum >> op >> secondNum;
if (op=="+")
{
res = firstNum + secondNum;
std::cout << res;
}
else if(op=="-")
{
res = firstNum - secondNum;
std::cout << res;
}
else if(op=="x")
{
res = firstNum * secondNum;
std::cout << res;
}
else if(op=="/")
{
res = firstNum / secondNum;
std::cout << res;
}
return 0;
}
推荐阅读
- javascript - 在每个月初重置一个计数器
- python - 在另一个列标题中访问列
- c++ - 使用/包含 *.a 静态库创建共享 *.dll 库
- android - 如何序列化字符串资源?
- python - 根据字符串拆分将列表拆分为子列表
- hololens - hololens 模拟器无法连接到共享服务
- angular - 'mat-form-field' 的 Angular 6 错误显示不是已知元素:
- design-patterns - 为什么这个代码在 Kotlin 中是不可能的?
- javascript - pixi.js rotateY 3d 轮播
- dojo - dojox.grid.EnhancedGrid 失去焦点