使用cin获取类的枚举类型
Get an enum type for a class using cin
我想提示用户告诉我这本书属于哪种类型。我想我可能会给用户一个菜单,用户可以在菜单中输入数字来选择哪一种。我想知道你是否可以把用户输入的名字像一个类型的字符串一样?
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++
中的值。
相关文章:
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 如何注册枚举类型到QJSEngine,以便在脚本环境中使用?
- 通过包装器从 C 访问C++ API 时,如何访问枚举类型
- C++/错误:表达式必须具有整数或无作用域枚举类型
- 如何理解c++中在命名空间内部定义的枚举类型enum
- 在类访问混淆中声明的枚举类型
- 在枚举类型上使用std::max是不是一种糟糕的做法
- C++ 在方程中使用变量;错误:表达式必须具有整数或无作用域枚举类型及其他
- 是否可以使用泛型枚举类型作为函数的参数?
- Visual Studio 2017 生成工具与枚举类型的问题
- 使用枚举类型管理存储顺序
- 如何检查类中定义的枚举类型变量是否被分配给?
- 如何从枚举类型中获取枚举值?
- 为什么C++不为枚举类型提供默认"operator>>"函数?
- 确保枚举类型的键/值在软件Revs之间永远不会更改
- MSVC 1 位枚举类型等于 -1,并且相等性测试失败
- 我们可以专业化类模板的枚举(类型)成员吗?
- 错误:以增量方式填充向量时,表达式必须具有整数或无作用域枚举类型
- 枚举类型的重载>>运算符(工作日)
- C 中的枚举类型字符串类别