c++枚举类型在输出的时候是不是只能输出所代表的整数啊?

如果有一个描述一周日程的枚举类型(Sunday,Monday···Saturday),能不能在输入一个整数的时候,直接输出类似于Sunday这样的字符串啊?... 如果有一个描述一周日程的枚举类型(Sunday,Monday···Saturday),能不能在输入一个整数的时候,直接输出类似于Sunday这样的字符串啊? 展开
 我来答
qing990411
2015-10-24 · 知道合伙人文学行家
qing990411
知道合伙人文学行家
采纳数:19 获赞数:1235
比较热爱文学。对于历史有部分研究

向TA提问 私信TA
展开全部
  是的。
  枚举类型是不能直接输入、输出枚举值的,每个枚举常量都对应一个整数值,在输入时,需要输入枚举值对应的整数值,所以需要使用(int&)进行类型转换。

  枚举变量可以直接输出,但不能直接输入。如:cout >> color3; //非法
不能直接将常量赋给枚举变量。如: color1=1; //非法
不同类型的枚举变量之间不能相互赋值。如: color1=color3; //非法
枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。
海心沙LY
2011-05-17
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
我正在复习江苏省那本C++程序教材。你这个题目就是书上的吧?
书上有个例子132页,就是输入整数0~6,并转换为对应的枚举量sunday,monday……你所提的问题是可以通过case语句实现的。书上有句话:“枚举变量的输入输出很不方便。这是由于枚举类型变量的值在程序中是以枚举量表示的,而在执行程序时是以整数(枚举量的序号)表示的 ,致使枚举类型的变量的值不能直接输入输出。”
下面程序是我根据那个例子改写的,后面习题的一周日程,日程是我乱写的,哈哈!我编译过的,可以执行~
#include<iostream.h>
enum weekdays{Sunday,Monday,Tuesday,Wednesday,Thusday,Friday,Saturday};
void main()
{
int i;
weekdays day;
cout<<"0:Sunday,1:Monday,2:Tuesday,3:Wednesday,4:Thusday,5:Friday,6:Saturday"<<endl;
cin>>i;
if(i<0||i>6) cout<<"输入值不对!"<<endl;
else
{
switch(i)
{
case 0: day=Sunday; break;
case 1: day=Monday ; break;
case 2: day=Tuesday; break;
case 3: day=Wednesday; break;
case 4: day=Thusday; break;
case 5: day=Friday; break;
case 6: day=Saturday; break;
}
switch(day)
{
case Sunday: cout<<"今天飞上海"<<endl; break;
case Monday: cout<<"今天飞南京"<<endl; break;
case Tuesday: cout<<"今天飞广州"<<endl; break;
case Wednesday: cout<<"今天飞北京"<<endl; break;
case Thusday: cout<<"今天飞深圳"<<endl; break;
case Friday: cout<<"今天飞新加坡"<<endl; break;
case Saturday: cout<<"今天飞厦门"<<endl; break;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-05-15 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3771万
展开全部
char *week[]=
{
"Sunday",
"Monday",
"Tuesday",
"Wednesday"
"Thursday",
"Friday",
"Saturday"
};

enum
{
Sunday = 0,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
week[Monday]
....
week[Saturday]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_HappyEnding
2011-05-15 · TA获得超过830个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:281万
展开全部
这个要自己输出,用switch case 判断输出.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式