簡體   English   中英

如何使用yaml-cpp發出不帶引號的字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM