gpt4 book ai didi

c++在包含多键时 boost 解析ini文件

转载 作者:太空狗 更新时间:2023-10-29 23:13:05 24 4
gpt4 key购买 nike

我需要使用带有 boost 库的 C++ 解析 ini 文件。该文件包含多键。例如,

[section_1]
key_1=value_1
key_1=value_2
...
key_n=value_n
[section_2]
key1=value_1
key1=value_2
...
key_n=value_1
key_n=value_2
[]
...
[section_n]
...

我尝试使用 boost 库的功能:函数 boost::property_tree::ini_parser::read_ini(),但它不能在 ini 文件中包含 multikey 并返回异常。所以我尝试使用函数 boost::program_options::parse_config_file(),但这不是我需要的。

我应该使用什么功能来解析 ini 文件以及我可以为每个部分获取具有相关键值的自己的结构?

最佳答案

您的输入根本不是 INI 文件,因为 INI 文件不允许重复值。您可以编写自己的解析器,例如使用我在这里写的代码:¹

如果替换section_t map

typedef std::map<textnode_t, textnode_t>    section_t;

使用 multimap :

typedef std::multimap<textnode_t, textnode_t>    section_t;

你可以解析重复的键:

[section_1]
key_1=value_1
key_1=value_2
key_n=value_n
[section_2]
key1=value_1
key2=value_2
key_n=value_1
key_n=value_2
[section_n]

See full code here: https://gist.github.com/sehe/068b1ae81547b98a3cec02a530f220df

¹ 或 Learning Boost.Spirit: parsing INIhttp://coliru.stacked-crooked.com/view?id=cd1d516ae0b19bd6f9af1e3f1b132211-0d2159870a1c6cb0cd1457b292b97230可能还有其他人

关于c++在包含多键时 boost 解析ini文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com