【发布时间】:2016-05-05 13:58:29
【问题描述】:
我有一个配置文件myCfg.cfg,如下所示:
keyA = 1.0
keyB = 2
keyC = "hello"
请注意,所有设置都位于配置树的根目录。
我希望我的 C++ 程序加载该文件,然后添加一个新设置,其键为 keyD,并为其分配整数值 5。最终,MyCfg 在内存中应该是这样的:
keyA = 1.0
keyB = 2
keyC = "hello"
keyD = 5
首先加载myCfg.cfg 文件以构造MyCfg。然后设置keyD 必须添加到MyCfg 的根。 libconfig documentation 表示 Setting::add() 方法:
将具有给定名称和类型的新子设置添加到设置中,该设置必须是组
但是,MyCfg 中没有任何组... 那么如何将设置添加到 Config 对象的根目录?
【问题讨论】:
-
@Gluttton 我不确定您所说的“您保存设置了吗?”。首先,我通过从 *.cfg 文件中读取配置来构造一个
Config实例,然后我采用该Config对象并尝试向其添加设置。我从不尝试编写与输入的 *.cfg 文件以及额外设置相对应的新 *.cfg 文件。 -
@Gluttton 不,我没有打电话给
writeFile(),我也不打算这样做。以下是有关上下文的更多信息:我使用Config对象作为运行代码的参数集合。代码中有两个类似的例程:首先,用户必须通过在 *.cfg 文件中指定设置来选择参数。另一方面,该参数只有一个值是有意义的。因此,为了对用户隐藏它,我要求他/她编写一个没有该设置的配置文件,并且代码必须在之后添加它。