首先和我在一起,我是菜鸟。
我试图编写一个输出星期几的程序。举例来说,假设有人输入day1,则输出周日,day2星期一,依此类推。我在switch案例中使用了一个switch语句,并将一个int映射到一个枚举。我似乎遇到的问题是它似乎没有用,至少在我输入day1时没有用。当我使用int值1到7时,它可以按预期工作。我试图找到解决方案,到目前为止,我只是碰壁了。
这是我的代码:
enum days{day1,day2,day3,day4,day5,day6,day7};
int day;
cout<<"Enter the day of the week in format day1 through day7 ";
cin>>day;
switch(day)
{
case day1:
cout<<"Sunday";
break;
case day2 :
cout<<"Monday";
break;`
}
最佳答案
如果要接受day1
,day2
等输入,那么为什么将输入变量声明为int
,它应该是char
数组。
如果您想接受像1
,2
这样的输入,那还可以...
如果要输入字符串,然后将其与枚举值进行比较,则首先必须将其转换为整数值。
你可以这样做,
char day[4];
cin>>day;
int d=day[3]-49;
然后像您一样在交换机中使用它。
switch(d)
{
case days::day1:
cout<<"Sunday";
break;
case days::day2 :
cout<<"Monday";
break;