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