c++ - 如何使用 boost 程序选项配置文件中的部分

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

这显然是一个相当简单的问题,因为没有其他人遇到过与图书馆类似的问题。

然而,当我运行我的程序时,boost 返回错误“Unrecognised 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"

我试过通过更改文件类型、名称...删除空格来调试它?

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

最佳答案

删除行

[设置]

来自您的配置文件。

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

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

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

关于c++ - 如何使用 boost 程序选项配置文件中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25729778/

相关文章:

c++ - 如何在 MFC-Dialog 中使用 OnDraw

c++ - 绕轴 3D 旋转的说明。 (简单编码)

file - 具有可变列号的 SSIS 平面文件

c++ - 如何将 protobuf 的 boost::shared_ptr 指针传递给函数?

c++ - 将自定义 Apache 2.4 模块与 Linux 上的 httpd/apr 库静态链接时出错

c++ - 如何确定我的应用程序是否在 SYSTEM 帐户下运行?

c++ - C++中二进制模式的长度指示器

ruby - 使用 Ruby 正则表达式匹配文件名的最有效方法

c++ - 在其他类(class)内实现探视类

c++ - 将 JsonCPP ValueIterator 与 STL 算法结合使用