我对C ++很陌生。我上周开始自学C ++,直到现在,我还没有遇到任何实际问题。 我使用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;
}
}
所以我完成了add.exe和subtraction.exe,但问题是无论我输入什么号码,它都会运行add.exe。在减法计算器中,我尝试让用户选择是否要减去2个以上的数字,但这也没有结束,因为它忽略了if语句。我还有一个在减法计算器和主程序上有一个else语句,它带你到显示文本读数的计算器,他们输入的数字不是一个有效的选择,并输入一个有效的选择,但即使这被忽略通过该计划。现在,也许我在互联网上看起来不够努力,但我找不到帮助我的人。如果你知道答案,请告诉我,但是用我能理解的字眼(毕竟我是),或者请把我链接到另一个已经回答的问题来解决我的问题。 先谢谢你了!
答案 0 :(得分:0)
cin
是类istream
的对象,表示标准输入流。它对应于cstdio
流stdin
。流的运算符>>
重载返回对同一流的引用。可以通过转换运算符在boolean
条件下将流本身评估为true
或false
。
cin提供格式化的流提取。操作cin >> x;
其中&#34; x
&#34;如果输入非数字值,则int将失败。所以:
if(cin>>x)
如果输入字母而不是数字,将返回false。
由于您总是输入数字,因此您的第一个语句if(cin>>sum)
始终为真。因此,您的其他陈述将被跳过。