如何在C ++中阅读.ini文件中的部分,键和值?
你能帮我提供非常简单的代码来阅读简单的文件吗?
E.G:
[SECTION] key1=int_value1 key2=string_value2
答案 0 :(得分:5)
查看GetPrivateProfileString和WritePrivateProfileString API:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724353%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms725501%28v=vs.85%29.aspx
答案 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)。