如果一个变量只可能是几种可能的值,则可以定义为枚举类型。枚举就是把所有的肯能的值一一列出来,变量的值只限于列举的范围内。
定义枚举类型的一般形式:enum [枚举名] {枚举元素列表};
例如:enum Months{jan=1,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec};
注:
1.默认按照枚举元素的顺序给他们赋值为0,1,2···,也可以自己再定义的时候进行赋值(如上例子)
2.C编译器对枚举元素按常量处理,故称枚举常量。因此在定义之后不能对他们进行赋值,所以不能从键盘上输入枚举变量的值, 不能直接将常量赋给枚举变量,(如:day=1非法)。
如何解决从键盘上输入枚举类型:
要想从键盘上输入枚举类型的变量,只能先输入一个一般类型的变量(一般是整型,因为枚举默认赋值为整型),然后再进行强制类型转换。
typedef enum{
DG=1,DN,UDG,UDN
}GraphKind;//有向图,无向图,有向网,无向网
int main(){
int c;
GraphKind kind;//枚举变量
cout<<"输入图的类型"<<endl;
cin>>c;
kind=GraphKind(c);
cout<<kind<<endl;
}