1

我想使用以下格式的 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;

在地图的开头,但它给出了错误的结果。我怎样才能得到我想要的输出?

4

1 回答 1

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;
于 2013-07-09T13:12:11.403 回答