c++读写ini

用c++读写ini 用API写请给简单的例子 要完整 谢谢会追加
2024-11-29 10:33:10
推荐回答(2个)
回答(1):

写入.ini文件:BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名 LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名 LPCTSTR lpString, // 键值,也就是数据 LPCTSTR lpFileName // INI文件的路径
);读取.ini文件:DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名 LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名 LPCTSTR lpDefault, // 如果lpReturnedString为空,则把个变量赋给lpReturnedString LPTSTR lpReturnedString, // 存放键值的指针变量,用于接收INI文件中键值(数据)的接收缓冲区 DWORD nSize, // lpReturnedString的缓冲区大小 LPCTSTR lpFileName // INI文件的路径
);读取整形值:(返回值为读到的整)UINT GetPrivateProfileInt(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名
LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名
INT nDefault, // 如果没有找到指定的数据返回,则把个变量值赋给返回值 LPCTSTR lpFileName // INI文件的路径);
读写INI文件时相对路径和绝对路径都可以,根据实际情况选择"..\\IniFileName.ini" // 这样的为相对路径"D:\\IniFileName.ini" // 这样的为绝对路径MAX_PATH:是微软最大路径占的字节所设的宏例子:写INI文件:LPTSTR lpPath = new char[MAX_PATH];

strcpy(lpPath, "D:\\IniFileName.ini");WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);
WritePrivateProfileString("LiMing", "Age", "20", lpPath);

WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);
WritePrivateProfileString("Fangfang", "Age", "21", lpPath);delete [] lpPath;INI文件如下:[LiMing]
Sex=Man
Age=20
[Fangfang]
Sex=Woman
Age=21读INI文件:LPTSTR lpPath = new char[MAX_PATH];
LPTSTR LiMingSex = new char[6];
int LiMingAge;
LPTSTR FangfangSex = new char[6];
int FangfangAge;
strcpy(lpPath, "..\\IniFileName.ini");

GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);
LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);

GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);
FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);delete [] lpPath;//以前mark别人Blog上的code,希望对你有帮助。

回答(2):

GetPrivateProfileString的使用方法
====================================================== 函数返回值为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中 DWORD GetPrivateProfileString(
LPCTSTR lpAppName, //配置文件的section名
LPCTSTR lpKeyName, //配置文件的key名
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);   其中各参数的意义:    前二个参数与 WritePrivateProfileString中的意义一样.    lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.    lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.    nSize : 目的缓存器的大小.    lpFileName : 是完整的INI文件名.
下面是一个常见的出错原因:
GetPrivateProfileString怎么总是读不出来
-------------------------------------------------------------------------------- *.INI内容
[NETWORK]
ServerIP=100.100.100.53
程序:
main()
{
char ip[16];
DWORD num=0;
num=GetPrivateProfileString("NETWORK","ServerIP,"",
ip,sizeof(ip),
"Server.ini");
cout<} -------- num=GetPrivateProfileString("NETWORK","ServerIP,"",
ip,sizeof(ip),
"Server.ini");
Server.ini这个文件放在哪里的?要放在与应用程序相同的目录下应该用".\\server.ini"
你看看是不是没有找到这个INI文件 ----------- VC中调试时,server.ini放在工程目录中;程序单独运行时,则需要放在跟exe同一个目录中。
因为从VC里启动程序,VC将程序的工作目录初始化为工程目录,而不是debug或release目录本身。
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/mxling/archive/2009/11/03/4760438.aspx