代码之家  ›  专栏  ›  技术社区  ›  user1591117

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

  •  3
  • user1591117  · 技术社区  · 10 年前

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

    然而,当我运行我的程序时,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 回复  |  直到 10 年前
        1
  •  5
  •   ravenspoint    10 年前

    拆下管路

    [设置]

    从配置文件中。

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

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

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