我刚刚开始使用yaml-cpp,我设法正确构建它并运行yaml-cpp wiki中的一些示例,但我找不到将发射器保存到文件的方法。
这不可能吗?我的意思是PyYAML库有一个'转储'功能。 yaml-cpp中没有这样的功能吗? 是否有一些解决方法将yaml发射器转换为stl流然后将其转储到yaml文件?
请告诉我
谢谢, 亚当
答案 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;