2014-07-10 67 views
1

我知道默認情況下,yamp-cpp發出不帶引號的字符串,但是,如果字符串中有括號,它總是用雙引號將其發出。如何使用yaml-cpp發出不帶引號的字符串?

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

在上面的例子中,我在文件中得到: 「[0,0,1]」 當我想[0,0,1]

你知道如何解決?

謝謝!

回答

1

yaml-cpp引用你的字符串的原因是,如果它沒有,你會發出一個序列,而不是一個標量。如果你想發出序列[0, 0, 1],那麼你可以這樣做:

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

但是你根本無法發出文本[0, 0, 1]作爲一個普通的標量,因爲它不是!

0

你可以試試這個:

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

或本:

out.WriteStreamable(myStr); 
相關問題