User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cpp:libconfig [2019-05-28 15:26]
cpp:libconfig [2020-02-15 00:57] (current)
Line 1: Line 1:
 +=====Libconfig sample=====
 +
 +as snippet. ​
 +
 +<code c++ config1.cpp> ​
 +/*
 + * config1.cpp
 + *
 + * Copyright 2004-2019 Oleg Borodin ​ <​borodin@unix7.org>​
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
 + * the Free Software Foundation; either version 2 of the License, or
 + * (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ​ See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 + * MA 02110-1301, USA.
 + */
 +
 +
 +#include <​iostream>​
 +#include <​libconfig.hpp>​
 +
 +int main(int argc, char **argv) {
 +
 +    libconfig::​Config config;
 +
 +    try {
 +        config.readFile("​test.conf"​);​
 +    } catch (std::​exception&​ e) {
 +        std::cerr << e.what() << std::endl;
 +        return 1;
 +    }
 +
 +    std::string foo = config.lookup("​foo"​);​
 +    std::cout << foo << std::endl;
 +
 +    try {
 +        libconfig::​Setting &​setting = config.lookup(""​);​
 +        int n = setting["​list"​][2];​
 +        std::cout << n << std::endl;
 +    } catch (std::​exception&​ e) {
 +        std::cerr << e.what() << std::endl;
 +        return 1;
 +    }
 +
 +    return 0;
 +}
 +</​code>​
 +===Out==
 +
 +<​file>​
 +$ cat test.conf
 +foo = "​bar";​
 +list = (1, 2, 4);
 +
 +$ ./config1
 +bar
 +4
 +</​file>​
 +
 +----
 +[<>]