gpt4 book ai didi

c++ - typedef 枚举输入

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:59 25 4
gpt4 key购买 nike

如果我们在 C++ 中有这个:

typedef enum {Unknown,USA,Canada,France,England,Italy,Spain,Australia,} origin_t;

origin_t Country;
char *current;
cin>>current;

我们如何将Country设置为用户输入的c-String current?除了一个一个比较,因为我们有一个很大的列表?最快的方法?非常感谢。

最佳答案

在 C++ 中,enumstringchar* 之间没有像在 Java 中那样的直接转换。

一种有效的方法是使用 map :

#include <map>
#include <string>

typedef enum {Unknown,USA,Canada,France,England,Italy,Spain,Australia,} origin_t;

std::map<std::string, origin_t> countries;
countries["Unknown"] = Unknown;
countries["USA"] = USA;
//...

origin_t Country;
std::string current;
cin>>current;
Country = countries[current];

请注意,在我的示例中,我使用的是 std::string 而不是 char*,除非您有充分的理由使用 ,否则您应该这样做>char*.

关于c++ - typedef 枚举输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com