【发布时间】:2011-03-21 12:26:58
【问题描述】:
我刚开始使用 yaml-cpp,我设法正确构建它并运行 yaml-cpp wiki 中的一些示例,但我找不到将发射器保存到文件的方法。
这不可能吗?我的意思是 PyYAML 库为此提供了“转储”功能。 yaml-cpp中没有这样的功能吗? 是否有一些解决方法可以将 yaml 发射器转换为 stl 流,然后将其转储到 yaml 文件中?
请告诉我
谢谢, 亚当
【问题讨论】:
标签: yaml-cpp
我刚开始使用 yaml-cpp,我设法正确构建它并运行 yaml-cpp wiki 中的一些示例,但我找不到将发射器保存到文件的方法。
这不可能吗?我的意思是 PyYAML 库为此提供了“转储”功能。 yaml-cpp中没有这样的功能吗? 是否有一些解决方法可以将 yaml 发射器转换为 stl 流,然后将其转储到 yaml 文件中?
请告诉我
谢谢, 亚当
【问题讨论】:
标签: yaml-cpp
函数Emitter::c_str() 返回一个NULL 终止的C 风格字符串(您不必释放),然后您可以将其写入文件。例如:
YAML::Emitter emitter;
emitter << "Hello world!";
std::ofstream fout("file.yaml");
fout << emitter.c_str();
还有Emitter::size(),它返回该字符串中的字节数,以防您想做更高级的事情并且不想遍历字符串来查找其长度。
如果您只想将Node 转储到流中,有一个捷径:
YAML::Node node = ...;
std::ofstream fout("file.yaml");
fout << node;
【讨论】:
yaml-cpp 的文档很短。
node相同的顺序保存它?