2016-07-30 794 views
-1

假设我有称为“卷”的变量,例如。我现在有一个包含Settings的文件。每个设置看起来像这样:“: 我现在从上到下浏览这个文件,并且我希望程序将设置存储在一个具有相同名称的变量中使用字符串作为变量名称(C++)

如果存在”Volume:76“ ,我想让程序在变量“Volume”中写入“76”。我怎样才能让程序得到正确的字符串变量?这是可能的吗?

还没有代码,因为我还没有开始做这个工作呢。我这件事让想法。

+1

在C++中,变量名称是编译器的符号,不是实际的字符串。 – bisthebis

+1

解析,解析和解析。 –

回答

2

不能直接使用变量,因为该名称必须在编译时存在的,但阅读文件是运行时。

虽然你可以使用std :: map。每个设置都将是一个键,并将读取该值。

std::map<std::string, std::string> settings; 
settings["volume"] = "76"; 

但是,值(在本例中为“76”)也是字符串。你不能直接使用不同的类型。 我认为,它可能与类型擦除,但那真的先进(和IAM不流利!)。

+1

因为我会将设置存储为数字,所以我可以使用“Std :: map ”我当然想 – D4RKS0UL23

+0

。所有必要的是,该值有一种类型,并且所有设置都有它们。 您可以使用基类,其中派生每个valuetype,并保存一个多态指针(unique_ptr)。但是如果你只需要数字,那也可以。 –

+0

我不知道为什么一个设置不应该是一个数字。如果你必须在Windows和Fullscreen之间选择,你可以使用数字0和1(或1和2) – D4RKS0UL23