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"

私はヘッダー情報を「失う」ことに耐えることができます-または引用符がどこにでも追加されるという事実(まあ、パーサーにそうするように言っただけですか?)。しかし、!<!>いいではありません。特に、これは各サイクルで継続するためです (2 回目の読み取り/書き込みサイクルでは、アーティファクトの 2 倍が追加されるなど)。

これらの感嘆符を防止するオプションはありますか?なぜそこにあるのですか?

4

0 に答える 0