2

myCfg.cfg次のような構成ファイルがあります。

keyA = 1.0
keyB = 2
keyC = "hello"

すべての設定が構成ツリーのルートにあることに注意してください。

私のC++プログラムがそのファイルをロードし、キーが である新しい設定を追加し、keyDそれに整数値を割り当てます5。最終的に、MyCfgメモリ内では次のようになります。

keyA = 1.0
keyB = 2
keyC = "hello"
keyD = 5

まず、myCfg.cfgファイルがコンストラクトにロードされMyCfgます。次に、設定keyDを のルートに追加する必要がありますMyCfglibconfigのドキュメントは、Setting::add()メソッドが次のことを示しています。

グループである必要がある設定に、指定された名前とタイプを持つ新しい子設定を追加します

しかし、そこにはグループがありませんMyCfg… では、Config オブジェクトのルートに設定を追加するにはどうすればよいでしょうか?

4

1 に答える 1

2

必要なものは次のとおりgetRoot ()です。

次に例を示します。

#include <iostream>
#include "libconfig.h++"


int main ()
{
    libconfig::Config MyCfg;
    std::string file = "myCfg.cfg";

    try {
        MyCfg.readFile (file.c_str () );

        libconfig::Setting & root = MyCfg.getRoot ();
        // This also works.
        // libconfig::Setting & root = MyCfg.lookup ("");
        libconfig::Setting & keyD = root.add ("KeyD", libconfig::Setting::TypeInt);
        keyD = 5;

        // You dont need it, but it's just for testing.
        MyCfg.writeFile (file.c_str () );
    }
    catch (...) {
        std::cout << "Error caused!" << std::endl;
    }

    return 0;
}
于 2016-01-28T11:13:15.527 に答える