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 に答える