如何在boost程序选项配置文件中使用节

时间:2014-09-08 17:25:56

标签: c++ file boost boost-program-options

这显然是一个相当简单的问题,因为没有其他人在库中遇到过这样的问题。

当我运行我的程序时,boost会返回错误“Unrecognized Option Settings.Directoy”但是我已经在我的代码和我要求它读取的文件中定义了这个。首先,这是我的代码,简称因为我做了它作为测试。

std::string Directory;

try {
    ifstream Config_File("Config.ini");
    options_description Game("Settings");
    Game.add_options()
        ("Directory", value<std::string>(&Directory)->default_value("Example.exe"));

    variables_map vm;
    store(parse_config_file(Config_File, Game), vm);
    notify(vm);

    if (vm.count("Directory"))
    {
        cout << Directory;
    }
}
catch(std::exception& E)
{
    std::cout << E.what() << std::endl;
}

以下是从“Config.ini”

中读取的文件
[Settings]
Directory = "Example.exe"

我尝试过调试这个,通过更改文件类型,名称...删除空格?

在目录中的条目中添加和删除引号?多件事,没有给我任何解决方案。

1 个答案:

答案 0 :(得分:3)

删除行

[设置]

来自配置文件。

或者,告诉配置文件解析器您正在使用部分,如下所示:

  Game.add_options()
        ("Settings.Directory", ...

http://www.boost.org/doc/libs/1_55_0/doc/html/program_options/overview.html#idp163379208