首先和我在一起,我是菜鸟。

我试图编写一个输出星期几的程序。举例来说,假设有人输入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;`
   }

最佳答案

如果要接受day1day2等输入,那么为什么将输入变量声明为int,它应该是char数组。
如果您想接受像12这样的输入,那还可以...

如果要输入字符串,然后将其与枚举值进行比较,则首先必须将其转换为整数值。

你可以这样做,

char day[4];
cin>>day;
int d=day[3]-49;

然后像您一样在交换机中使用它。
switch(d)
{
case days::day1:
cout<<"Sunday";
break;

case days::day2 :
cout<<"Monday";
break;

07-26 00:51