使用 boost::property_tree::ptree 如何获取特定键的值
Using boost::property_tree::ptree how to get the value of a specific key
如何解析文件中存在的所有部分并获取每个键的值。
也就是说,我必须解析 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;
}
如何解析文件中存在的所有部分并获取每个键的值。 也就是说,我必须解析 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;
}