yaml-cpp从文件导入字符串会产生工件吗?

时间:2013-04-21 17:05:11

标签: c++ yaml-cpp

当我用yaml-cpp尝试某些东西时,我被困在弦上..尤其是因为它们似乎没有很好地往返......

当我从文件中读取一个字符串 - 然后导出该字符串时,导出时似乎是一个工件..即字符串:

%YAML 1.2
---
key1: "this is a string"
key2: this is another
...

当我简单阅读&写一些额外的字符被添加到第一个“keyvalue”:

::YAML::Node y(YAML::LoadFile("testyaml.txt"));
std::fstream out("testyaml2.yml", std::ios_base::out);
YAML::Emitter em(out);
em.SetIndent(2);
em.SetStringFormat(DoubleQuoted); //just to add quotes
em << y;    

但现在文件看起来像:

"key1": !<!> "this is a string"
"key2": "this is another"

我可以忍受“丢失”标题信息 - 或者在任何地方添加引号的事实(我只是告诉解析器这样做吗?)。但是!<!>并不好。特别是因为这将继续每个周期(第二个读/写周期将增加两倍的工件等)。

是否可以选择防止这些感叹号 - 它们为什么存在?

0 个答案:

没有答案