[英]How to emit a string without quotes using yaml-cpp?
我知道默認情況下,yamp-cpp會發出不帶引號的字符串,但是,如果字符串中包含方括號,則始終會發出帶有雙引號的字符串。
YAML::Emitter out;
// ...
const std::string myStr = "[0, 0, 1]"
out << myStr;
在上面的示例中,當我需要[0,0,1]時進入文件“ [[0,0,1]”
你知道怎么解決嗎?
謝謝!
yaml-cpp引用您的字符串的原因是,如果沒有,您將發出一個序列,而不是標量。 如果要發出序列[0, 0, 1]
,則可以這樣做:
out << YAML::BeginSeq << 0 << 0 << 1 << YAML::EndSeq;
但您根本無法將文本[0, 0, 1]
發出為純標量,因為它不是!
您可以嘗試以下方法:
YAML::Emitter out;
// ...
const std::string myStr = "[0, 0, 1]"
out << YAML::Load(myStr);
或這個:
out.WriteStreamable(myStr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.