我的任务很简单 - 我只需要解析这样的文件:
Apple = 1
Orange = 2
XYZ = 3950
但我不知道可用的键集。使用 C# 相对容易地解析了这个文件,让我演示一下源代码:
public static Dictionary<string, string> ReadParametersFromFile(string path)
{
string[] linesDirty = File.ReadAllLines(path);
string[] lines = linesDirty.Where(
str => !String.IsNullOrWhiteSpace(str) && !str.StartsWith("//")).ToArray();
var dict = lines.Select(s => s.Split(new char[] { '=' }))
.ToDictionary(s => s[0].Trim(), s => s[1].Trim());
return dict;
}
现在我需要使用C++来做同样的事情。 我想使用boost::property_tree::ptree
,但是似乎我无法迭代ini文件。读取ini文件很容易:
boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini(path, pt);
但是不可能对它进行迭代,可以参考这个问题:Boost程序选项 - 获取部分中的所有条目
问题是:如何在C++上编写类似于上述C#代码的最简单方法?