aboutsummaryrefslogtreecommitdiffstats
path: root/samples/c++/sample3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'samples/c++/sample3.cpp')
-rw-r--r--samples/c++/sample3.cpp54
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;
+}
+
+/***************************************************************************/