我知道默認情況下,yamp-cpp發出不帶引號的字符串,但是,如果字符串中有括號,它總是用雙引號將其發出。如何使用yaml-cpp發出不帶引號的字符串?
YAML::Emitter out;
// ...
const std::string myStr = "[0, 0, 1]"
out << myStr;
在上面的例子中,我在文件中得到: 「[0,0,1]」 當我想[0,0,1]
你知道如何解決?
謝謝!
我知道默認情況下,yamp-cpp發出不帶引號的字符串,但是,如果字符串中有括號,它總是用雙引號將其發出。如何使用yaml-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);