Ada*_*itz 113
如果您需要跨平台解决方案,请尝试Boost的程序选项库.
Joe*_*sky 111
您可以使用Windows API函数,例如GetPrivateProfileString()和GetPrivateProfileInt().
Lar*_*lum 22
我从来没有解析过ini文件,所以我不能在这个问题上过于具体.
但我有一个建议:只要现有车轮满足您的要求,就
不要重新发明轮子
http://en.wikipedia.org/wiki/INI_file#Accessing_INI_files
http://sdl-cfg.sourceforge.net/
http://sourceforge.net/projects/libini/
http://www.codeproject.com/KB /files/config-file-parser.aspx
祝好运 :)
Dat*_*Chu 15
如果你已经在使用Qt
QSettings my_settings("filename.ini", QSettings::IniFormat);
Run Code Online (Sandbox Code Playgroud)
然后读取一个值
my_settings.value("GroupName/ValueName", <<DEFAULT_VAL>>).toInt()
Run Code Online (Sandbox Code Playgroud)
还有许多其他转换器可以将INI值转换为标准类型和Qt类型.有关更多信息,请参阅QSettings上的Qt文档.
这个问题有点陈旧,但我会发布我的答案.我已经测试了各种INI类(你可以在我的网站上看到它们),我也使用simpleIni,因为我想在windows和winCE上使用INI文件.Window的GetPrivateProfileString()仅适用于winCE上的注册表.
使用simpleIni很容易阅读.这是一个例子:
#include "SimpleIni\SimpleIni.h"
CSimpleIniA ini;
ini.SetUnicode();
ini.LoadFile(FileName);
const char * pVal = ini.GetValue(section, entry, DefaultStr);
Run Code Online (Sandbox Code Playgroud)
inih是一个用C编写的简单的ini解析器,它也带有一个C++包装器.用法示例:
#include "INIReader.h"
INIReader reader("test.ini");
std::cout << "version="
<< reader.GetInteger("protocol", "version", -1) << ", name="
<< reader.Get("user", "name", "UNKNOWN") << ", active="
<< reader.GetBoolean("user", "active", true) << "\n";
Run Code Online (Sandbox Code Playgroud)
作者还在此处列出了现有库.
归档时间: |
|
查看次数: |
110876 次 |
最近记录: |