如何使用从cin读取的变量求值表达式

时间:2019-03-13 22:26:53

标签: c++

我正在尝试制作一个基本的计算器,但是我没有得到我期望的答案。这是我的代码:

char x;
int y;
int z;

cout << "Welcome to the Calculator!\n";
cout << "What operation would you like to use?\n";
cin >> x;

cout << "What will be the first integer?\n";
cin >> y;

cout << "What will be the second?\n";
cin >> z;

cout << "Computing...\n";
cout << y << x << z;

执行该命令时,如果分别为每个提示符输入-96,则会得到以下输出:

9-6

同样,如果我输入+84,则会得到:

8+4

我期望输出分别为312

2 个答案:

答案 0 :(得分:3)

我认为解决这个问题的最简单方法就是从小做起。制作一个具有单一功能的计算器:一个将数字加在一起的计算器。突然,您的代码是:

cout << "What will be the first integer?\n";
cin >> y;

cout << "What will be the second?\n";
cin >> z;

auto result = y + z;
std::cout << result << "\n";

又好又容易。现在考虑如何添加允许减法的功能。好吧,我们需要问哪个操作:

std::cout << "Would you like to add or subtract numbers? ";
char operation;
std::cin >> operation;

int result;
if (operation == '+')
{
    result = y + z;
}
else
{
    result = y - z;
}

您可以通过if else if或仅添加switch

添加更多内容
int result;
switch (operation)
{
    case '+': result = y + z; break;
    case '-': result = y - z; break;
    case '*':
    case 'x':
        result = y * z; break;
}

此外,您还想为输入的无效操作添加处理。

答案 1 :(得分:1)

您需要测试用户输入的字符,并使用它来确定要应用的操作。所以如果输入“-”,即可执行操作y-z