中易网

c++如何打印出各个枚举常量(不是期内在值)

答案:4  悬赏:70  
解决时间 2021-03-08 20:07
比如
enum colour{a,b,c,d,e} colour1;
colour1=a;
如果打印a或者colour1,出现的都是内在值也就是0
怎样才能打印出这些枚举常量(a.b,c,d,)呢?
我看见有人说c不能直接打印枚举常量,只能打印内在值,对吗?
如果非要打印出枚举常量,该怎么做?
最佳答案
c++/c 确实不支持这种情况的打印,因为你枚举实际就是起个名字而已,你说int a=10;你说怎么能打印出‘a'这个字符出来,而不是a的值10呢,枚举也是这个原因。但是如果你想实现这个功能当然是可以的,你可以自己映射呀,比如
你建一个字符串对应上你的枚举的变量。
char p[]={'a','b','c','d','e'};
然后你如果想输出枚举的名字那么就输出 p[colour1]就可以了。
东西都是自己想的。
c#倒是有这个功能,但是他内部实现,无非也是向我这样编译器帮你做了一个转换而已,所以自己动手,丰衣足食!
全部回答
在枚举型和整形中可以用等号=为一个符号规定任意的对应整数!而且该整数增1就是下一个符号的默认对应整数!
enum colour{a = 97,b,c,d,e} colour1; 打印的时候用“%c”
c直接打印枚举常量字符很难 因为它们已经代表了具体的数值 就算是用输出格式符限制那也是它们所代表的数值 比如printf("%c",(char)a); 即便是想打印字符a 但在这里a已然代表数值0 所以打印出来时空白 也就是null
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黑塔利亚中任勇洙出现的动漫集数
爱贝国际教育地址在什么地方,想过去办事
昨天清理灰尘后,开机电脑一长声,无法开机,
我公司实行单休制,计算日工资按21.75的标准天
中式家这个家具网站靠谱不?
客家小厨地址有知道的么?有点事想过去
农村耕地盖房子怎么办
脑筋急转弯为什么你没做错事却还要受惩罚答案
黄山市城市学校少年宫地址在什么地方,想过去
label matrix 7.0 怎么在A4纸上一次打很多 标
平静造句(描写心情)
你想先听好消息还是坏消息?
临床医学专科山区定向是什么?就业好么??
x2-3xy-18y2=0 这个方程怎么解 急急!!
赛美门业怎么去啊,有知道地址的么
推荐资讯
国家怎样解决山区儿童教育问题
传奇水星MW310R怎么映射
纤娇百媚我想知道这个在什么地方
小明坐在一辆行驶的轿车上,自西向东运动,他
采购原材料圆钢25吨,单价3100,货款及运杂费50
豪客滋餐厅主要经营什么?
我想研究一个课题。关于开发一个新的旅游网站
自己从液化气站灌气后往饭店送能赚多少钱
龙泉山二号隧道地址在哪,我要去那里办事
鸿福日杂经营部地址有知道的么?有点事想过去
喀什市浩罕乡这个地址在什么地方,我要处理点
关于水果介绍的网络图书有吗???
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?