Como ler arquivo de configuração em C/C++

Para ler arquivo de configuração em C++ existe uma biblioteca chamada Boost Property Tree.

Basicamente essa biblioteca te disponibiliza uma estrutura de Chave e Valor, tanto para .INI quanto para XML e JSON.

Exemplo de Arquivo .INI

// process.ini
[database]
host=0.0.0.0
port=1234

[log]
path=/tmp
file=%process%_%timestamp%_%n%.log
size=1024

Como Funciona a Boost Property Tree

Simples como ler um arquivo usando fstream.

Exemplo

// criando uma variável do tipo property_tree
boost::property_tree::ptree tree;

// lendo um arquivo .ini
boost::property_tree::read_ini("process.ini", tree);

 

Como usar a Boost Property Tree

Nos links de referência abaixo tem o meu projeto no GitHub para iniciar o seu teste!.

// como recuperar um valor da estrutura
// como pode ver o acesso ao grupo e valor da chave devem ser separados por ponto
// esse exemplo mostra como recuperar o valor passando o grupo e chave host
std::string host = tree.get<std::string>("database.host");

/** Caso não seja configurado o valor no arquivo você pode atribuir um valor
* padrão passando no segundo parâmetro da função 'get'
**/
int port = tree.get("database.port", 1234);

 

A Boost::Property_Tree também possibilita a leitura de arquivos XML e JSON, para isso você deve usar as funcões read_xml/read_json.

Links de Referência

Tem alguma dúvida ou sugestão? Deixe nos comentários!

Deixe um comentário