我想使用yaml-cpp库以下列格式发出一系列映射:
-
name: <some_name>
value: <some_value>
我正在使用此代码:
Emitter out;
out << YAML::BeginSeq;
for (unsigned int i = 0; i < prof_info_.numOfSettings; ++i)
{
str = NvUS_to_string(stgs[i].settingName);
if (str != "")
{
out << YAML::BeginMap;
out << YAML::Key << "name";
out << YAML::Value << str;
string d_str = get_value_name_from_value_id(stgs[i].settingId, (unsigned int)stgs[i].u32CurrentValue);
out << YAML::Key << "value";
out << YAML::Value << d_str;
out << YAML::EndMap;
}
}
out << YAML::EndSeq;
f_out << out.c_str();
我得到了:
- name: <some_name>
value: <some_value>
我尝试添加
out << YAML::NewLine;
在地图的开头,但它给出了错误的结果。如何获得我想要的输出?
答案 0 :(得分:1)
将YAML::Newline
放在 YAML::BeginMap
之后的,以便在-
之后但在地图的第一个条目之前获取换行符:
out << YAML::BeginMap;
out << YAML::Newline;
out << YAML::Key << "name";
out << YAML::Value << str;
out << YAML::Key << "value";
out << YAML::Value << d_str;
out << YAML::EndMap;