如何使用yaml-cpp发出不带引号的字符串?

时间:2014-07-10 19:06:47

标签: c++ yaml-cpp emit

我知道默认情况下yamp-cpp会发出没有引号的字符串但是,如果字符串中有括号,它总是用双引号发出它。

YAML::Emitter out;
// ...
const std::string myStr = "[0, 0, 1]"
out << myStr;

在上面的例子中,我进入文件:&#34; [0,0,1]&#34;当我想要[0,0,1]

你知道如何解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

yaml-cpp引用你的字符串的原因是,如果它没有,你将发出序列,而不是标量。如果要发出序列[0, 0, 1],则可以这样做:

out << YAML::BeginSeq << 0 << 0 << 1 << YAML::EndSeq;

但是你只是不能以简单的标量发出文本[0, 0, 1],因为它不是!

答案 1 :(得分:0)

你可以试试这个:

YAML::Emitter out;
// ...
const std::string myStr = "[0, 0, 1]"
out << YAML::Load(myStr);

或者这个:

out.WriteStreamable(myStr);