Libconfigの使い方
Linux Debian用にC++の簡単なアプリを書いています。
configファイルの読み書きに、Libconfig++を使おうと思うのですが、configファイルの読み込みはできるのですが、内容の更新のやり方が良く分かりません。
https://hyperrealm.github.io/libconfig/libconfig_manual.html
addメソッドは、新しい設定項目と値の追加ようですし、writeFileは有るのですが、値の更新のやり方が分かりません。
よろしくお願いいたします。
#include <iostream>
#include <libconfig.h++>
using namespace std;
using namespace libconfig;
#define CONFIG_FILE "sample_conf"
int main()
{
Config cfg;
try{
cfg.readFile( CONFIG_FILE );
}
catch(const FileIOException &fioex){
cerr << "I/O error while reading file." << endl;
}
catch(const ParseException &pex){
cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine()
<< "-" << pex.getError() << endl;
return(EXIT_FAILURE);
}
int start;
int end;
string file_name;
try{
if(!(cfg.lookupValue("start", start)))
throw 1;
if(!(cfg.lookupValue("end", end)))
throw 2;
if(!(cfg.lookupValue("file", file_name)))
throw 3;
cout << "Start" << '\t' << start << endl;
cout << "End" << '\t' << end << endl;
cout << "File Name" << '\t' << file_name << endl;
}
catch(int fError){
cout << "Itme Error " << fError << endl;
}
}
sample_conf
start = 10;
end = 20;
file = "settings";
<追記>
const Setting& root = cfg.getRoot();
const Setting& settings = root["settings"];
settings.lookupValue("start") = 30;
として見ましたが、エラーになります。
Invalid arguments '
Candidates are:
bool lookupValue(const char *, bool &)
bool lookupValue(const char *, int &)
bool lookupValue(const char *, unsigned int &)
.
.