[英]INFO parser, property tree - how can I gather all values according to the single key
我有*.txt
文件,我想将其解析为字符串。
key1
{
key2
{
key8 value2 value3
key9 value3 value3
key3
{
key5 value1
key6 value2
key7 value3
}
}
}
问题是,一个键分配了一个以上的值。 当我试图获得价值时,它只会给我第一个。
boost::property_tree::ptree pt;
boost::property_tree::read_info("C:\\NewFolder\\file.txt", pt);
string padShape = pt.get<std::string>("key1.key2.key8");
我很高兴将所有值都放在一个字符串对象中,我将自己拆分它。
这是带有INFO解析器文件示例的网站,其中的值实际上用空格隔开,但是我找不到允许我读取它的方法。
格式不是这样的。 你的例子
key8 value2 value3
被解析为
key8 value2
value3 ""
这意味着您可以像这样修复它:
key1
{
key2
{
key8 "value2 value3"
key9 "value3 value3"
key3
{
key5 "value1"
key6 "value2"
key7 "value3"
}
}
}
#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
}
}
}
您链接到的“网站”是增强文档站点。 在此处查看当前版本: http : //www.boost.org/doc/libs/release/doc/html/property_tree/parsers.html#property_tree.parsers.info_parser 。 并注意该示例如何确切显示如何使用双引号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.