-1
#include <iostream> //include header files

using namespace std;

int main () //start of main body

{

int num; //declaring integer

int control=1; //declaring integer

while(control==1)//start of loop, as long as condition is true
{
    cout << "Press 1 for coffee" << endl; //writes to standard o/p
    cout << "Press 2 for tea" << endl;
    cout << "Press 3 for hot chocolate" << endl;
    cout << "Press 4 for soft drink" << endl;
    cout << "Press 5 to exit" << endl;
    cin >> num;


if (num == 1) //code to execute if integer = 1
{
    cout << "coffee selected" << endl;
}
else if (num == 2) //code to execute integer = 2
{
    cout << "tea selected" << endl;
}
else if (num == 3) //code to execute if integer = 3
{
    cout << "hot chocolate selected" << endl;
}
else if (num == 4) //code to execute if integer = 4
{
    cout << "soft drink selected" << endl;
}
else if (num == 5) //code to execute if integer = 5
{
    cout << "Exit Program" << endl;
    control=0;
}


}

}

这是我修改后的代码,它有效。但是我不确定初始化 num 整数,所以我把它省略了,但代码仍然执行并正常工作。

4

6 回答 6

3

错误是您正在将int( num) 与字符串文字(例如"1". 这个特定的字符串文字有 type const char[2],它衰减到const char*,因此编译器错误。

例如,您需要将数字与数字进行比较

if (num == 1) { .... }
于 2013-03-24T17:11:59.237 回答
2

您正在尝试将数字与字符串文字进行比较。不是一个好计划。尝试

if(num==1)

不是

if(num=="1")

其次,num未定义。尝试为它设置一个值。

C++ 编译器会给您错误,因为您无法比较两种不同的数据类型。在此处阅读有关比较的更多信息

于 2013-03-24T17:12:20.160 回答
2

由于您要求用户输入整数,因此您不需要menu成为类型。string只需使用

if (num == 1) 

不是

if (num == "1")
于 2013-03-24T17:12:20.970 回答
2

您在这里将整数与字符串进行比较num == "1"。相反,使用num == 1

于 2013-03-24T17:11:48.013 回答
1

首先,您的 num 未初始化。当您更改此设置时,还将比较从更改num == "1"num == 1

当前,您在这样做时将输入​​放入menu变量中,getline (cin, menu, '\n');如果您想将输入存储在num.

除了这是非常好的代码,我会选择 4)

于 2013-03-24T17:15:11.497 回答
1

整数与字符串进行比较:)

num == "1"

不允许,顺便说一句,我认为您想要的不是“num”,而是“menu”,它是一个字符串?

于 2013-03-24T17:12:58.043 回答