版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaoshenjie/article/details/50282329
C++ Windows读写INI文件
一:将信息写入到INI文件
所用函数:
BOOL WritePrivateProfileString(
LPCSTR lpAppName,
LPCSTR lpKeyName,
LPCSTR lpString,
LPCSTR lpFileName)
LPCSTR lpString,
LPCSTR lpFileName)
参数说明:
LPCSTR lpAppName ini文件中字段名
LPCSTR lpKeyName 是对应字段(
lpAppName )下的key名,类似C++中的变量
LPCSTR lpString 是对应键名下的键值,必须为
LPCSTR或CString类型
LPCSTR lpFileName 是ini文件的完整路径
实例:
CString strName ,strTemp;
int iAge;
strName = "李四";
iAge = 18;
WritePrivateProfileString("StudentInfo","Name",strName,"d:\\stu\\student.ini");
//此时ini文件中会出现
//[StudentInfo]
//Name=李四
strTemp.Format("%d",iAge);
WritePrivateProfileString("StudentInfo","Age",strTemp,"d:\\stu\\student.ini");
二:将ini文件中的内容读入内存
读CString类型所用函数:
DWORD GetPrivateProfileString(
LPCSTR lpAppName,
LPCSTR lpKeyName,
LPCSTR lpDefault,
LPSTR lpReturnedString,
DWORD nSize,
LPCSTR lpFileName
);
LPCSTR lpAppName,
LPCSTR lpKeyName,
LPCSTR lpDefault,
LPSTR lpReturnedString,
DWORD nSize,
LPCSTR lpFileName
);
参数说明:
LPCSTR lpAppName ini文件中字段名
LPCSTR lpKeyName 是对应字段(lpAppName )下的key名,类似C++中的变量
LPCSTR lpDefault 如果ini文件中没有对应所给的 lpAppName和lpKeyName 值,将此值赋给变量
LPSTR lpReturnedString 接收 INI文件中值的CString对象,即目的缓存器
DWORD nSize 目的缓存器的大小
LPCSTR lpFileName 是ini文件的完整路径
LPCSTR lpKeyName 是对应字段(lpAppName )下的key名,类似C++中的变量
LPCSTR lpDefault 如果ini文件中没有对应所给的 lpAppName和lpKeyName 值,将此值赋给变量
LPSTR lpReturnedString 接收 INI文件中值的CString对象,即目的缓存器
DWORD nSize 目的缓存器的大小
LPCSTR lpFileName 是ini文件的完整路径
实例:
CString stuName;
int stuAge;
GetPrivateProfileString("StudentInfo","Name","无",stuName.GetBuffer(MAX_PATH),MAX_PATH,"d:\\stu\\student.ini");
注:在使用完GetBuffer()后要调用ReleaseBufer()
//执行后stuName的值为李四,如果参数1,2ini文件中无,stuName值为无。
读整形所用函数:
UINT
GetPrivateProfileInt(
LPCSTR lpAppName,
LPCSTR lpKeyName,
INT nDefault,
LPCSTR lpFileName
);
LPCSTR lpAppName,
LPCSTR lpKeyName,
INT nDefault,
LPCSTR lpFileName
);
stuAge = GetPrivateProfileInt("StudentInfo","Age",10,"d:\\stu\\student.ini");
注:在Windows下WritePrivateProfileString、GetPrivateProfileString、GetPrivateProfileInt都是受字符集所影响的,如果你按照本例操作,出现函数参数类型问题,请将vs中项目的属性->配置属性中的字符集改为对应的字符集(unicode/多字节字符集)即可。