0

我的程序应该显示请求形状的名称。我不习惯使用字符串,那么我将如何回显用户输入(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;
}
4

2 回答 2

1

该声明

cin>> C,U,Y,P,S,Q;

方法

(cin>> C),U,Y,P,S,Q;

因为逗号运算符在所有运算符中的优先级最低。

因此,它将一个字符输入到C中,然后(这是逗号运算符所做的)计算U, Y,和P,将后者的值作为表达式结果,然后将其丢弃。SQ

这可能不是你想象的那样。

要完成这项工作,您可以

  • 使用单个输入变量,例如,称为line.

  • 使用标题中的getline函数<string>输入一行。

  • 检查输入的那一行是"U",在这种情况下做 U 的事情,或者其他一些字母,在这种情况下做其他的事情。该if声明对此有好处。

于 2012-10-26T02:42:05.477 回答
1

这段代码是错误的。

cin >>  C,U,Y,P,S,Q;

这将尝试将用户键入的任何内容写入 C 指向的内存中。其他以逗号分隔的部分是没有效果的单独语句。

您要做的是将用户的输入写入一个新变量。

char choice;
cin >> choice;

然后看看那是什么并做出相应的回应。

if ('C' == choice)
{
   // print output
}
else if ('U' == choice)
{
   // print output

等等

于 2012-10-26T02:42:33.290 回答