为什么我的 C++ 计算器每输入两个数字就减去一次,而不是执行我要求它执行的操作?

Why does my calculator in c++ subtract every two numbers I input, instead of doing the operations I asked it to do?

A simple calculator in C++

所以,我写了这个程序,但是当我输入任意两个数字和一个代表运算的数字时,它总是将这两个数字相减,我不知道出了什么问题...

if (c = 1)

C++中的=符号表示赋值,而不是比较。您需要 ==(在其他三种情况下也需要)。

问题是你有

if (c = 1) {
    ...
}

表达式 c = 1 将 1 分配给 c 然后 returns 1,这是正确的,因此它进行了减法。

你的意思是

if (c == 1) {
   ...
}

不幸的是,您犯了 C 和 C++ 的比较与赋值运算符的菜鸟错误。

if( c = 2 ) {

首先将 2 的值赋给变量 c,然后测试 truefalse(非零或 C/C++ 中的零)。在这种情况下 2,即 true.

你应该用过:

if( c==2 ) {

因为这会将 c 的值与 2 和 returns 的值进行比较,以防它们相等。