1

我想要一个不止两个级别的ini文件......像这样

[Section1]
Value1 = 10
Value2 = a_text_string

[Section2]
[SubSection1]
Value1=1
Value2=2

[Section2]
[SubSection2]
Value1=a
Value2=b

Qn 1. 如何创建这样的ini文件?

之后,我想加载这些值并使用 Boost 在我的应用程序中打印它们

* Qn2。这行得通吗?如果不是,我该怎么做?*

boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini("config.ini", pt);
std::cout << pt.get<std::string>("Section1.Value1") << std::endl;
std::cout << pt.get<std::string>("Section2.Subsection1.Value2") << std::endl;
4

1 回答 1

3

INI 文件不支持这样的结构。如果要在 INI 文件中具有不同的结构级别,则必须在每个部分中指定完整路径:

[Section1]
Value1 = 10
Value2 = a_text_string

[Section2.SubSection1]
Value1=1
Value2=2

[Section2.SubSection2]
Value1=a
Value2=b

实际的“第 2 节”。前缀在 INI 语法中没有任何具体含义,它只是一种让您在不支持嵌套的语言中创建这种结构的方法。

于 2012-10-02T19:22:54.373 回答