c++中的枚举到底有什么作用?唯其如此直接输出所代表的整数吗

c++中的枚举到底有什么作用?只能直接输出所代表的整数吗?
刚才也没百度到具体的答案,看到的几个都是用条件判断最后输出整数所代表的字符,如果不能直接输出所代表的字符那枚举和整形有什么区别吗?
------解决思路----------------------
我从不主动用枚举。
------解决思路----------------------
C++枚举功能虽然有点弱,但对于提高代码可读性及减少魔数还是有作用的,附两段代码,楼主体会下:
#include<iostream>
using namespace std;
void main()
{
int per=0;
switch(per)
{
case 0:
cout<<"中国人,牛!"<<endl;
break;
case 1:
cout<<"美帝人,黑!"<<endl;
break;
case 2:
cout<<"英国佬,才!"<<endl;
break;
default:
break;
}
}

#include<iostream>
using namespace std;

enum Person
{
Chinese,American,English
};

void main()
{
Person per=American;
switch(per)
{
case Chinese:
cout<<"中国人,牛!"<<endl;
break;
case American:
cout<<"美帝人,黑!"<<endl;
break;
case English:
cout<<"英国佬,才!"<<endl;
break;
default:
break;
}
}