视觉 如何在C++中读取 ini 文件
visual How can I read an ini file in C++?
可能的重复项:
在C++中解析 INI 文件的最简单方法是什么?
如何在C++中从.ini文件中读取部分、键和值?
你能帮我提供非常简单的代码来读取简单的文件吗?
例如:
[部分]键1=int_value1键2=string_value2
查看 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
我用来读取ini文件的那个,它是一个易于使用和集成的简单模板类,作为奖励,它是跨平台的。
对于初学者来说,INI 文件已经过时,应尽可能避免使用。由于格式简单(也许是正确的(,它们似乎很诱人,但受到限制,并且用于访问它们的 API 已被弃用和/或较弱。如果可以的话,使用一个简单的XML配置文件可能会更好(尽管它也可能需要外部代码,而且许多XML解析器又胖又丑;pugixml是我的最爱(。
如果您确实必须使用 INI,则需要此处列出的GetPrivateProfile*
函数(我假设您的目标是 Windows 并且可以使用 WinAPI 函数,因为您在 VS 上(。
函数的精确行为实际上有些复杂,但在大多数情况下,它们会像您期望的那样工作,尽管很笨拙。您可以查询文件中的节、整数和字符串,如下所示:
UINT value = GetPrivateProfileInt("Section", "Key", DEFAULT_VALUE, "program.ini");
等等。一个潜在的混淆点是部分 ( lpAppName
( 的参数名称,这在使用单应用/多部分 INI 时不准确。
但请注意,INI 功能很慢。他们经常加载并通读整个文件,寻找他们需要的部分,连续的调用将重新打开并重新读取文件的大部分内容。它们很旧且未优化,因此您应该保持呼叫。如果您需要速度,请缓存值,一次性读取它们,或使用可以运行的东西(如 XML(。
- 理解boost::asio-async_read在无需读取内容时的行为
- 尝试从C++中的 ini 文件读取
- 如何完整读取 INI 文件
- 使用64编译器在C 中读取INI文件
- c++ GetPrivateProfileString 从当前目录读取 ini 文件
- MFC SDI在更改属性时从INI读取并更新视图字符串
- 读取 ini 文件C++错误
- 从ini文件中读取十六进制字符
- 如何在读取 ini 文件时使用扩展字符集?(C++郎)
- 用 c++ 读取 INI 文件
- 如果 INI 文件中的行长度大于 n C++,则跳过读取该行
- C++ ( 没有 MFC ) 检查 ini 读取值是否为空
- 从具有重复项的INI文件中读取
- 当INI文件不存在时,使用Boost属性树读取INI文件
- 视觉 如何在C++中读取 ini 文件
- Q设置-正在读取INI文件
- 在c++/MFC中读取一个键并从.ini文件中获取该节
- QSettings:如何从INI文件中读取数组
- 无法使用boost::program_options读取INI文件解析
- 非 unicode 程序的语言会更改 ini 读取