提升信息解析器在读取/写入 INFO 格式文件时删除所有注释

Boost info parser removes all the comments while reading/writing an INFO format file

本文关键字:文件 格式 INFO 删除 注释 写入 信息 读取      更新时间:2023-10-16

比如说,我们有一个名为a.conf的文件

key3
{
  key4 "value4 with spaces" ;this is a key4
}

当我尝试通过以下方式使用提升信息解析器读取具有上述内容的 INFO 格式文件时;

namespace p = boost::property_tree;
p::ptree pt;
std::ifstream input("a.conf");
pt::info_parser::read_info(input, pt); 
/*
....do some stuff (optional)
*/

并在a.conf中写回pt的内容,注释被删除。

std::ofstream output("a.conf");
write_info(output, pt);    
output.close();

写回a.conf文件的内容;

key3
{
  key4 "value4 with spaces"
}

有没有办法在使用提升信息解析器读取/写入时保留这些注释?

不。只需查看文档 http://www.boost.org/doc/libs/1_66_0/doc/html/property_tree/parsers.html#property_tree.parsers.info_parser

INFO 往返,除了丢失注释和包含指令。