如何在C ++中读取ini文件?

时间:2012-01-03 21:39:38

标签: c++ visual-c++ ini

  

可能重复:
  What is the easiest way to parse an INI File in C++?

如何在C ++中阅读.ini文件中的部分,键和值?

你能帮我提供非常简单的代码来阅读简单的文件吗?

E.G:

[SECTION]
key1=int_value1
key2=string_value2

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:4)

https://github.com/brofield/simpleini是我用来读取ini文件的那个,它是一个易于使用和集成的简单模板类,作为奖励,它是跨平台的。

答案 2 :(得分:-1)

对于初学者来说,INI文件已经过时,应该尽可能避免。由于格式简单(可能是正确的),它们看起来很诱人,但是有限且用于访问它们的API被弃用和/或弱。如果可以,使用简单的XML配置文件可能会更好(虽然它可能还需要外部代码,而且许多XML解析器都很胖而且很丑陋; pugixml是我最喜欢的。)

如果你必须使用INI,你需要GetPrivateProfile*函数,如列出here(我假设你的目标是Windows并且可以使用WinAPI函数,因为你在VS上)。

函数的精确行为实际上有点复杂,但在大多数情况下,如果笨拙,它们将按预期工作。您可以在文件中查询section,int和字符串,如下所示:

UINT value = GetPrivateProfileInt("Section", "Key", DEFAULT_VALUE, "program.ini");

等等。一个潜在的混淆点是部分(lpAppName)的参数名称,这在使用单个应用程序/多部分INI时不准确。

但请注意,INI函数很慢。他们经常加载和读取整个文件,寻找他们需要的部分,连续的调用将重新打开并重读大部分文件。它们已经过时且未经过优化,因此您应该保持呼叫状态。如果您需要速度,请缓存值,一次性读取它们,或者使用某些内容(如XML)。