libconfig++ :将设置添加到配置树的根目录
libconfig++ : adding a setting to the root of the configuration tree
我有一个配置文件 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()
方法:
add[s] a new child setting with the given name and type to the setting, which must be a group
但是,MyCfg
中没有任何组...那么我如何将设置添加到 Config 对象的根目录?
看来您需要的只是:getRoot ()
。
示例如下:
#include <iostream>
#include "libconfig.h++"
int main ()
{
libconfig::Config MyCfg;
std::string file = "myCfg.cfg";
try {
MyCfg.readFile (file.c_str () );
libconfig::Setting & root = MyCfg.getRoot ();
// This also works.
// libconfig::Setting & root = MyCfg.lookup ("");
libconfig::Setting & keyD = root.add ("KeyD", libconfig::Setting::TypeInt);
keyD = 5;
// You dont need it, but it's just for testing.
MyCfg.writeFile (file.c_str () );
}
catch (...) {
std::cout << "Error caused!" << std::endl;
}
return 0;
}
我有一个配置文件 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()
方法:
add[s] a new child setting with the given name and type to the setting, which must be a group
但是,MyCfg
中没有任何组...那么我如何将设置添加到 Config 对象的根目录?
看来您需要的只是:getRoot ()
。
示例如下:
#include <iostream>
#include "libconfig.h++"
int main ()
{
libconfig::Config MyCfg;
std::string file = "myCfg.cfg";
try {
MyCfg.readFile (file.c_str () );
libconfig::Setting & root = MyCfg.getRoot ();
// This also works.
// libconfig::Setting & root = MyCfg.lookup ("");
libconfig::Setting & keyD = root.add ("KeyD", libconfig::Setting::TypeInt);
keyD = 5;
// You dont need it, but it's just for testing.
MyCfg.writeFile (file.c_str () );
}
catch (...) {
std::cout << "Error caused!" << std::endl;
}
return 0;
}