显示结果后如何去掉数字?

How to get rid of a number after the result being shown?

我必须编写一个程序来计算用户输入的公式。例如:“输入:1+2”,“输出:3”,但我总是在这样的答案后得到一个数字:“ 输入:1+2","输出:3-12"。我如何摆脱 3 后面的 -12?为什么它给我那个号码?这是代码:

#include <iostream>
using namespace std;

int main(){
    int n,m;
    char x;
    cin>>n>>x>>m;
    if(x='+'){
        cout<<n+m;
    }
    if(x='-'){
        cout<<n-m;
    }
    if(x='*'){
        cout<<n*m;
    }
    
}

请帮忙,谢谢。

if语句中的表达式:

if(x='+')

不会将 x+ 进行比较,而是将 + 分配给 x。这意味着您的每个 if 语句的计算结果为真,并且您得到 3 个数字作为输出,即 3、-1 和 2。

比较的正确方法是:

if(x == '+')

如果您打开所有警告,编译器会告诉您您做错了什么。

首先你进行了“=”操作,这会将值分配给变量,所以你必须这样做;

if (x == '*')

它将解决问题。

第二个'-'操作当第一个数字小于第二个数字时你会遇到问题它会给你一个负数来解决它你会做一个简单的if语句来防止这种情况发生;

if (x=='-'){
   if(n>m)
     cout << n-m << endl;
   else
     cout << m-n << endl;
}

所以你告诉计算机,如果第一个数字大于第二个数字,那么减去第一个数字, 否则,如果第一个数字小于第二个数字,则从第一个数字中减去第二个数字,这样你就可以防止用户表单得到负数。