我正在尝试创建一个看起来像这样的简单配置文件
url = http://mysite.com
file = main.exe
true = 0
当程序运行时,我希望它将配置设置加载到下面列出的程序变量中。
string url, file;
bool true_false;
我做了一些研究, 这个 链接似乎有帮助(nucleon’s post),但我似乎无法让它工作,而且我理解起来太复杂了。有没有一种简单的方法可以做到这一点?我可以使用 ifstream
加载文件,但这是我自己能做到的。谢谢!
原文由 llk 发布,翻译遵循 CC BY-SA 4.0 许可协议
一般来说,解析这样典型的配置文件最容易分两个阶段:首先读取行,然后逐行解析。
在 C++ 中,可以使用
std::getline()
从流中读取行。虽然默认情况下它会读取到下一个'\n'
(它会消耗,但不会返回),你也可以传递一些其他的分隔符,这使它成为读取最高 -一些字符,例如=
在您的示例中。为简单起见,以下假设
=
没有 被空格包围。如果您想在这些位置允许空格,则必须在读取值并从键中删除尾随空格之前战略性地放置is >> std::ws
。但是,IMO 语法中增加的一点点灵活性对于配置文件阅读器来说是不值得的。(添加错误处理留给读者作为练习。)