diff options
Diffstat (limited to 'samples/c++/sample3.cpp')
-rw-r--r-- | samples/c++/sample3.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/samples/c++/sample3.cpp b/samples/c++/sample3.cpp new file mode 100644 index 0000000..da1de79 --- /dev/null +++ b/samples/c++/sample3.cpp @@ -0,0 +1,54 @@ +/************************************************************************* + ** Sample3 + ** Load sample.cfg and try to add a setting "foo".. + ** on success save to testfoo.cfg + *************************************************************************/ + +#include <iostream> +#include <libconfig.h++> + +using namespace libconfig; +using namespace std; + +/***************************************************************************/ + +int main() +{ + Config cfg; + try + { + /* Load the configuration.. */ + cout << "loading [sample.cfg]..."; + cfg.readFile("sample.cfg"); + cout << "ok" << endl; + + /* Add setting "foo" */ + cout << "add setting \"foo\"/..."; + Setting &root = cfg.getRoot(); + Setting &foo = root.add("foo", Setting::TypeInt); + foo = 1234; + cout << "ok" << endl; + + /** Look up an array element */ + cout << "looking up array element..."; + Setting &elem = cfg.lookup("arrays.values.[0]"); + int val = elem; + std::cout << "value is: " << val << std::endl; + std::cout << "path is: " << elem.getPath() << std::endl; + + /* Save to "samplefoo.cfg" */ + cout << "saving [samplefoo.cfg]..."; + cfg.writeFile("samplefoo.cfg"); + cout << "ok" << endl; + + cout << "Done!" << endl; + } + catch (...) + { + cout << "failed" << endl; + } + + return 0; +} + +/***************************************************************************/ |