1

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

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

在上面的示例中,当我想要 [0, 0, 1] 时,我进入文件:“[0, 0, 1]”

你知道怎么解决吗?

谢谢!

4

2 回答 2

2

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

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

但是您根本不能将文本[0, 0, 1]作为纯标量发出,因为它不是!

于 2014-07-11T03:43:10.123 回答
0

你可以试试这个:

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

或这个:

out.WriteStreamable(myStr);
于 2017-04-10T11:02:50.253 回答