c++ - 使用 boost::property_tree::ptree 如何获取特定键的值

标签 c++ boost boost-propertytree

如何解析文件中存在的所有部分并获取每个键的值。 也就是说,我必须解析section1,获取 key1, key2, key3 的值。继续第 2 部分,获取 key1、key2 和 key3 的值。 我的 .ini 文件看起来像这样。

[SECTION1]
key1=value1
key2=value2
key3=value3
[SECTION2]
key1=value1
key3=value3
key2=value2

等等

最佳答案

这是一个例子:

#include <iostream>
#include <string>
#include "boost/property_tree/ini_parser.hpp"


namespace pt = boost::property_tree;


int main() {
  pt::wptree root;

  pt::read_ini("test.ini", root);
  std::wcout << root.get_optional<std::wstring>(L"SECTION1.key2").value() << std::endl;

  return 0;
}

文件“test.ini”包含:

[SECTION1]
key1=value1
key2=value2
key3=value3
[SECTION2]
key1=value1
key3=value3
key2=value2

获取所有值:

#include <iostream>
#include <string>
#include "boost/property_tree/ini_parser.hpp"


namespace pt = boost::property_tree;


int main() {
  pt::wptree root;

  pt::read_ini("test.ini", root);

  for (auto& child : root) {
    std::wcout << child.first << std::endl;

    for (auto& sub_child : child.second)
      std::wcout << sub_child.second.get_value<std::wstring>() << std::endl;
  }

  return 0;
}

关于c++ - 使用 boost::property_tree::ptree 如何获取特定键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701349/

相关文章:

c++ - 如何使用媒体基础从 MP4 视频中丢弃任意帧?

c++ - cvCeil() 比标准库快吗?

c++ - 使用 boost::serialize 反序列化多个值(使用 SSCCE)

c++ - Boost ptree 数字数组

c++ - 来自 libc.so.6 C++ 的 bad_alloc

c++ - 使用typeid来处理不同的类型

c++ - 了解 vector<shared_ptr<T>>、shared_ptr<vector<T>> 或 vector<T>

c++ - 使用 Boost C++ 解析 XML 文件

c++ - 如何从 Boost.PropertyTree 复制子树

c++ - pthread 看不到作为参数传递的实例变量