通过输入对枚举变量赋值

#include<iostream>
#include<string>
using namespace std;
int main()
{
enum number{zero,one,two,three,four,five,six,seven,eight,nine};
number num;
cin>>num;
cout<<num;
}
我知道这样有错误 但如何实现比如说输入one 输出证书1呢
枚举的元素貌似是常量吧。
如果,你想从键盘输入"拆桥one",然后输出1,雀型应该用字符串比较匹配的方法来顷御猜现实。枚举里面的元素,只有我们能看出来它是"one",计算机可看不出来,只会认为它是1。
#include<iostream>
#include<string>
#include<段哪裂map>
using namespace std;
int main()
{
map<string,int> m;
m["zero"] = 0;
m["one"] = 1;
m["two"] = 2;
m["three"] = 3;
m["four"] = 4;
m["five"] = 5;
m["six"] = 6;
m["seven"] = 7;
m["eight"] = 8;
m["nine"握闭] = 9;
//缓庆 add more
string num;
cin>>num;
if(m.find(num)!=m.end())
cout << m[num] << endl;
system("pause");
}