我的任务很简单——我只需要解析这样的文件:
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 program options - get all entries in section
问题是 - 在 C++ 上编写上述 C# 代码模拟的最简单方法是什么?