木叶 このは:c的printf怎么输出枚举类型变量

来源:百度文库 编辑:高考问答 时间:2024/04/30 17:56:41
??

enum设计出来是为了编写代码方便而使用的,底层并不保存枚举量名称,如果你真需要打印出enum的变量名称出来,可以使用下面的方式:

typedef enum
{
A = 0,
B,
C
}ENUM_SAM_T;

char* p[3]={"A","B","C"};

然后可以在程序中做如下打印枚举量E的值:
ENUM_SAM_T E = A;
printf("%s",p[E]);

希望有帮助
#include <iostream>
using namespace std;

void main(void)
{
enum egg {a,b,c};
enum egg test; //在这里你可以简写成egg test;

test = c; //对枚举变量test进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,例如(test=1;)这样的操作都是不被编译器所接受的,正确的方式是先进行强制类型转换例如(test = (enum egg) 0;)!

if (test==c)
{
cout <<"枚举变量判断:test枚举对应的枚举元素是c" << endl;
}

if (test==2)
{
cout <<"枚举变量判断:test枚举元素的值是2" << endl;
}

cout << a << "|" << b << "|" << test <<endl;

test = (enum egg) 0; //强制类型转换
cout << "枚举变量test值改变为:" << test <<endl;
cin.get();
}