1

我正在编写一个类似 INI 的配置文件,我想知道在 C/C++ 中解析它的最佳方法。我在 POSIX 上写它,所以我将使用 # 而不是 ;。这没关系。我只是想知道,是否有某种教程,有关解析事物的文章或其他内容。

4

6 回答 6

3

有很多关于解析的教程和文章,但是您所处理的内容是如此琐碎,以至于它们中的大多数都可能是矫枉过正的。

鉴于以前这样做的频率,我将首先查看一些已经实现几乎您想要的现有代码。

于 2010-09-12T16:31:57.470 回答
2

已经有很多开源库,您可能只需很少或无需修改即可使用,例如libini

于 2010-09-12T17:10:11.057 回答
1

与 C++ 基本内容一样,boost 有一个可以读取 ini 文件的库。实际上有两个库,具体取决于您要实现的目标:

于 2010-09-12T21:37:50.457 回答
1

尝试配置器。它是易于使用且灵活的 C++ 库,用于配置文件解析(从最简单的 INI 到具有任意嵌套和语义检查的复杂文件)。仅标题和跨平台。使用 Boost C++ 库。

见: http: //opensource.dshevchenko.biz/configurator

于 2010-11-11T19:43:40.950 回答
0

根据您实际需要的复杂程度,您可能只需在循环中使用 fgets() 并手动解析每一行(例如使用 strstr()、strchr()、strcmp() 等)。如果您只需要获取一些值,那么拖入解析库就没有什么意义了。

于 2010-09-12T22:05:38.860 回答
0

如果 Boost 对你来说太过分了,试试这个 6 Kb BSD 许可代码。

“inih (INI Not Invented Here) 是一个用 C 语言编写的简单 .INI 文件解析器。它只有几页代码,而且设计得小而简单,所以它适用于嵌入式系统。”

http://code.google.com/p/inih/

如果您更喜欢对象,还有一个 C++ 类,它同时支持“;” 和“#”评论。

于 2013-12-25T20:41:01.297 回答