求教关于枚举类型的问题

我这只菜鸟一直对枚举类型感到糟心。枚举类型究竟是做什么用的呢?枚举变量存在的意义有什么?
还有怎样在输入时给枚举变量赋值?如,enum A{a,b,c,d},怎样输入A类型的变量的值呢?
用cin不行啊!
完全被枚举绕进去了。
求指教

枚举是一组常量值。用来定义一些有意义的名称。而不是纯粹的数字。这样可以更容易理解。
你cin输入的时候还是要用int类型数据。然后用int变量来跟枚举值比较来操作

简单例子助你理解枚举类型
enum Week
{
Sunday=0,
Monday=1,
Tuesday=2,
Wendsday=3,
Thursday=4,
Friday=5,
Saturday=6
}

这是一个星期的枚举类,他规定了Week类型的变量的值域,他的变量只能从下面的值中取值
Week w=Week.Saturday;

如果用普通的int 行变量 ,那我给他赋值为100都可以,代码就可能出错,且不好理解

你可以这样想,枚举就是定义好的不需要改变的常量,举一个简单的例子,坦克大战都玩过吧,坦克发射炮弹的方向我们假设规定为8个,上、右上、右、右下
......你便可以定义一个坦克方向的枚举类,但你需要用到的坦克方向的时候,只需要从里面拿出就行了,对于程序来说,方便而有意义