我的程序应该显示所请求形状的名称。我不习惯使用字符串,那么我如何回应用户输入(C显示锥形等)?我猜是某种if语句,但不知道如何写它。
示例:
Hello. Welcome to the shape volume computing program.
Which shape do you have? (C for cone, U for cube, Y, for cylinder P for pyramid, S for sphere, or Q to quit)
Enter shape: U
okay, cube. Please enter the length of a side: 3
okay, the length of the side = 3
the volume = 27
enter shape: C
okay, cone. Please enter the radius of the base: 2
please enter the height: 3
okay, the radius = 2 and the height = 3
the volume = 12.56
enter shape: Q
bye!
代码:
int main()
{
string C,U,Y,P,S;
C= "cone";
U= "cube";
Y= "cylinder";
P= "pyramid";
S= "sphere";
int Q= -1;
cout<< " Enter C for cone, U for cube, Y for cylinder, P for pyramid, S for sphere or Q
to quit. " <<endl;
cin>> C,U,Y,P,S,Q;
if(Q= -1)
cout<< " Goodbye! " <<endl;
return 0;
}
答案 0 :(得分:1)
声明
cin>> C,U,Y,P,S,Q;
装置
(cin>> C),U,Y,P,S,Q;
因为逗号运算符具有所有运算符的最低优先级。
因此它将一个字符输入C
,然后(这是逗号运算符所做的)评估U
,Y
,P
,{{1}和S
,后者的值作为表达式结果,然后被丢弃。
这可能不你认为它做了什么。
要完成这项工作,你可以
使用单个输入变量,例如名为Q
。
使用line
标题中的getline
功能输入一行。
检查该输入行是否为<string>
,在这种情况下是U字还是其他字母,在这种情况下做其他事情。 "U"
声明对此有好处。
答案 1 :(得分:1)
这段代码错了。
cin >> C,U,Y,P,S,Q;
这会尝试将用户输入的内容写入C指向的内存中。其他逗号分隔部分是单独的语句,没有任何效果。
您要做的是将用户的输入写入新变量。
char choice;
cin >> choice;
然后看看那是什么并做出相应的反应。
if ('C' == choice)
{
// print output
}
else if ('U' == choice)
{
// print output
等