#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整数,所以我把它留了出来但代码仍然执行并正常工作。
答案 0 :(得分:3)
错误在于您将int
(num
)与字符串文字(例如"1"
)进行比较。此特定字符串文字的类型为const char[2]
,它会衰减到const char*
,因此编译错误。
您需要将数字与数字进行比较,例如
if (num == 1) { .... }
答案 1 :(得分:2)
您要将整数与字符串num == "1"
进行比较。相反,请使用num == 1
答案 2 :(得分:2)
您正在尝试将数字与字符串文字进行比较。 不一个好计划。尝试
if(num==1)
不
if(num=="1")
其次,num
未定义。尝试为其设置一个值。
C ++编译器会为您提供错误,因为您无法比较两种不同的数据类型。阅读有关比较的更多信息here
答案 3 :(得分:2)
由于要求用户输入整数,因此您不需要menu
为string
类型。
只需使用
if (num == 1)
不
if (num == "1")
答案 4 :(得分:1)
与字符串比较的整数:)
num == "1"
不允许,顺便说一句,我认为而不是“num”而是你想要的“菜单”,这是一个字符串?
答案 5 :(得分:1)
首先,你的数字未初始化。
当你改变这个,然后改变num == "1"
的比较
至
num == 1
目前,当您执行menu
时,您将输入放入getline (cin, menu, '\n');
变量中,因此如果要在num
中存储输入,则必须更改此项。
除此之外是漂亮的代码,我会选择4)