代码之家  ›  专栏  ›  技术社区  ›  Christian R.

用C++编写的程序忽略if和else语句

  •  -2
  • Christian R.  · 技术社区  · 9 年前

    我使用Microsoft Visual Studio 2017,我对if和else语句有问题。你看,我正在制作这个非常有限的计算器。基本上,该程序提供了4个基本的数学运算,您可以通过输入1、2、3或4来选择要用于计算的运算。然后,它运行另一个程序,您可以进行计算。(例如:2表示减法,如果输入2,它将运行减法计算器)

    #include "stdafx.h"
    #include "iostream"
    using namespace std;
    
    int main(){
    int add = 1; 
    int sub = 2; 
    int mul = 3; 
    int div = 4; 
    cout << "Extremely Limited C++ Calculator: Enter a number between one and 
    four to start calculating and press enter." 
        << '\n' 
        << "LEGEND" 
        << '\n' << "1 = Addition"
        << '\n' << "2 = Subtraction"
        << "\n" << "3 = Multiplication"
        << '\n' << "4 = Division" 
        << '\n' << "Operation: "; 
    if (cin >> add) {
    system("start C:\\CalculatorApps\\addition.exe");
    return 0;
    }
    if (cin >> sub) {
    system("start C:\\CalculatorApps\\subtraction.exe");
    return 0; 
    }
    if (cin >> mul) {
    system("start C:\\CalculatorApps\\multiplication.exe");
    return 0; 
    }
    if (cin >> div) {
    system("start C:\\CalculatorApps\\division.exe");
    return 0; 
    }
    }
    

    所以我有一个补充。exe和减法。exe做了,但问题是,无论我输入什么数字,它总是会运行addition.exe。在减法计算器中,我尝试让用户选择是否要减去2个以上的数字,但这也没有成功,因为它忽略了if语句。我在减法计算器和主程序上都有一个else语句,它把你带到计算器上,计算器上显示文本,他们输入的数字不是一个有效的选择,并且输入了一个有效的选择,但即使这样,程序也忽略了。现在,也许我在网上找得不够仔细,但我找不到一个能帮我解决问题的。如果你知道答案,请告诉我,但用我能理解的语言(我) 是 提前谢谢!

    1 回复  |  直到 9 年前
        1
  •  0
  •   Tanuj Yadav    9 年前

    cin 是类的对象 istream cstdio 流动 stdin .操作员 >> boolean true 或 false 通过转换运算符。

    cin提供格式化流提取。手术 cin >> x;

    其中“ x

    if(cin>>x)
    

    如果输入字母而不是数字,则返回false。

    if(cin>>sum) 永远是真的。因此,您的其他语句将被跳过。