I have a basic enum declaration:
enum Title {Prof, Dr, Mr, Mdm, Mrs, Miss, NA}; I'm trying to map the user input(0,1,2,3,4,5,AnyNumber) with correct value from enum like this:
std::map<std::string,Title> m; m["0"] = Prof; m["1"] = Dr; m["2"] = Mr; m["3"] = Mdm; m["4"] = Mrs; m["5"] = Miss; std::string stitle; cout << "\n" << "Title (0:Prof 1:Dr 2:Mr 3:Mdm 4:Mrs 5:Miss Any:NA): "; cin >> stitle; Title title = m[stitle]; cout << title; // output 1 when I input 1, output 2 when I input 2 and so on I expect the above code should be working but whatever I input will be the output from cout but not the value from enum list. What's the problem with my code?