8

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

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

请告诉我

谢谢,亚当

4

1 回答 1

9

该函数Emitter::c_str()返回一个NULL- 终止的 C 样式字符串(您不必释放它),然后您可以将其写入文件。例如:

YAML::Emitter emitter;
emitter << "Hello world!";

std::ofstream fout("file.yaml");
fout << emitter.c_str();

还有Emitter::size(),它返回该字符串中的字节数,以防您想做更高级的事情并且不想遍历字符串以查找其长度。

如果您只想将 a 转储Node到流中,则有一个快捷方式:

YAML::Node node = ...;
std::ofstream fout("file.yaml");
fout << node;
于 2010-07-27T20:52:49.247 回答