使用YAML-CPP将YAML发射器内容保存到文件

时间:2010-07-27 09:45:48

标签: yaml-cpp

我刚刚开始使用yaml-cpp,我设法正确构建它并运行yaml-cpp wiki中的一些示例,但我找不到将发射器保存到文件的方法。

这不可能吗?我的意思是PyYAML库有一个'转储'功能。 yaml-cpp中没有这样的功能吗? 是否有一些解决方法将yaml发射器转换为stl流然后将其转储到yaml文件?

请告诉我

谢谢, 亚当

1 个答案:

答案 0 :(得分:4)

函数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;