首页 > 解决方案 > 如何从键盘调用枚举器?

问题描述

我最近刚开始学习 C++,我想知道是否可以通过在键盘上键入枚举器的名称来调用枚举器。请帮忙。对不起,如果我犯了任何语法错误。

int main()
{
    enum MonsterRaces
    {
        orcs = 1,
        goblins l = 2,
        trolls = 3,
    };

    std::cout << "Enter your monster race: ";
    std::string x;
    std::getline(std::cin, x);

    MonsterRaces yourPick = x;

    std::cout << "You've picked races numbered: " << yourPick;
    return 0;
}

它打印

“无法在初始化中将 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' 转换为 'main()::MonsterRaces'”

标签: c++

解决方案


你需要使用std::map. 把这个放在某个地方:

const std::map<std::string, int> table {
    {"orcs"   , 1},
    {"goblins", 2},
    {"trolls" , 3},
};

然后使用

std::cout << table.at(yourPick);

推荐阅读