使用cin获取类的枚举类型

Get an enum type for a class using cin

本文关键字:枚举 类型 cin 获取 使用      更新时间:2023-10-16

我想提示用户告诉我这本书属于哪种类型。我想我可能会给用户一个菜单,用户可以在菜单中输入数字来选择哪一种。我想知道你是否可以把用户输入的名字像一个类型的字符串一样?

class Book
{
public:
    enum Genre
        {
        fiction,
        nonfiction,
        periodical,
        biograhpy,
        children
        };
    //...
    void get_genre();
    //...

private:
    //...
    Genre      genre;
};
//========================================================================================
//========================================================================================
void Book::get_genre()
{   

return;
}

您必须自己将枚举值的名称映射到它们的值。您可以使用std::map<string, Genre>std::unordered_map<string, Genre>(如果c++11可用)。无法将值的名称转换为C++中的值。