Я хочу иметь INI-файл с более чем 2 уровнями … как-то так
[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;
INI-файлы не поддерживают такую структуру. Если вы хотите иметь разные структурные уровни в INI-файле, вы должны указать полный путь в каждом разделе:
[Section1]
Value1 = 10
Value2 = a_text_string
[Section2.SubSection1]
Value1=1
Value2=2
[Section2.SubSection2]
Value1=a
Value2=b
Фактический «Раздел2». Префикс не означает ничего конкретного в грамматике INI, это просто способ создать такую структуру на языке, который не поддерживает ее с помощью вложенности.
Других решений пока нет …