我正在考虑为我的代码创建一个输入/日志文件,主要用于两个目的。
1) 能够记录代码运行时使用的所有关键参数,以便将来我可以在需要时重现相同的结果。2)能够启动/恢复代码,无需硬编码代码中的参数。
我对仅使用标头的方法感兴趣,因此我可以简单地将头文件与我的代码一起携带,因此我已经变成了 boost.property_tree。从文档来看,它似乎可以达到目的。我的问题是哪种文件格式最能满足我的需求?我需要一些东西:
1) 易于人类阅读/编辑 2) 可以支持嵌套部分 3) 可以支持评论
默认情况下,我已经转向 xml,但考虑到 boost.property_tree 的解析功能,我不确定这是不是最好的选择。例如,我希望能够解析如下内容:
<Grid Type = "AMR">
<Domain> -1.0 1.0 -1.0 1.0 </Domain>
<Levels> 10 5 </Levels>
<Path> /path/to/data.bin </Path>
</Grid>
我希望能够正确且分别地读取Type
属性以及Domain
、Levels
和Path
部分(例如Domain
,有 4 个单独的浮点对应于矩形的边缘)。我的代码如下所示:
using boost::property_tree::ptree;
ptree pt;
double x = pt.get<double>("Grid.Domain");
std::cout << x << std::endl;
但我不断得到conversion of data to type "d" failed
。我应该如何解决它?另外,xml 是我拥有的最佳选择还是应该考虑更改为另一种格式?