C/C++枚举enum分别打印输出枚举子和枚举值的方法

  关于枚举枚举的基础概念我这里不再介绍,感兴趣的同学可以查阅另一篇博文C/C++中枚举类型enum使用。这里我主要提一下在调试一个大型程序中遇到日志打印中一个关于枚举输出的小错误。
  我们知道枚举分为枚举子和枚举值,就相当于键与值的对应关系。例如下面的枚举变量:

enum Example {FIRST,SECOND,THIRD}; // 三个枚举子对应枚举值默认是0,1,2。

  那如何输出枚举值和枚举子呢?
 1 输出枚举值
  我们先看一个简单的,输出枚举值,其实非常简单以整数形式输出即可,如下:

printf("%d\n", FIRST); //输出结果为:0

 2 输出枚举子
  这里有个很大的误区,很多人会根据上面的输出联想到下面的方法:

printf("%s\n", (Example)1); // 想以字符串形式输出SECOND  ×

  这种方式是一个大大的错误,根本没有此方法输出枚举子,正确形式需要转换一下关系,最终还是需要依靠条件判断来输出,程序如下:

    int i;
    scanf("%d", &i);
    switch (i)
    {
        case 0: printf("FIRST\n"); break;
        case 1: printf("SECOND\n"); break;
        case 1: printf("THIRD\n"); break;
        default:printf("NONE\n");
    }

  个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!
  转载请注明出处:http://blog.csdn.net/FX677588/article/details/76600033

  • 14
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值