3

尝试使用 yaml-cpp 进行某些操作时,我被困在字符串中。尤其是因为它们似乎不能很好地往返...

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

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

当我简单地读写时,一些额外的字符被添加到第一个“键值”中:

::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"

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

有没有办法阻止这些感叹号——为什么会出现?

4

0 回答 0