gpt4 book ai didi

c++ - INFO 解析器,属性树 - 我如何根据单个键收集所有值

转载 作者:行者123 更新时间:2023-11-30 05:33:54 28 4
gpt4 key购买 nike

我有 *.txt 文件,我想将它解析为字符串。

key1
{
key2
{
key8 value2 value3
key9 value3 value3
key3
{
key5 value1
key6 value2
key7 value3
}
}
}

问题是分配给一个键的值不止一个。当我试图获得值(value)时,它只会返回第一个值。

boost::property_tree::ptree pt;
boost::property_tree::read_info("C:\\NewFolder\\file.txt", pt);
string padShape = pt.get<std::string>("key1.key2.key8");

我会很高兴将所有值都放在一个字符串对象中,我会自己拆分它。

Here是带有 INFO 解析器文件示例的网站,其中值实际上用空格分隔,但我找不到允许我阅读它的方法。

最佳答案

这不是格式的工作原理。你的例子

    key8 value2 value3

被解析为

    key8 value2
value3 ""

这意味着您可以像这样修复它:

key1
{
key2
{
key8 "value2 value3"
key9 "value3 value3"
key3
{
key5 "value1"
key6 "value2"
key7 "value3"
}
}
}

查看 Live On Coliru

#include <boost/property_tree/info_parser.hpp>
#include <iostream>

int main() {
boost::property_tree::ptree pt;

read_info(std::cin, pt);
write_info(std::cout, pt);
}

打印往返形式:

key1
{
key2
{
key8 "value2 value3"
key9 "value3 value3"
key3
{
key5 value1
key6 value2
key7 value3
}
}
}

The "a website" you link to is the boost documentation site. See the current version here: http://www.boost.org/doc/libs/release/doc/html/property_tree/parsers.html#property_tree.parsers.info_parser. And note how the sample shows exactly how to use double quotes

关于c++ - INFO 解析器,属性树 - 我如何根据单个键收集所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531441/

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