1.INI文件写入函数
BOOL WritePrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName,LPCTSTR lpString, LPCTSTR lpFileName);
lpAppName:INI文件中的一个字段名,也可以有多个字段名,通过这个字段名才能继续去操作我们的键值
lpKeyName:字段名下的一个键值,我们写入的数据会赋值与它
lpString:我们要向INI文件中写入的数据
lpFileName:INI文件的路径
2.INI文件读取函数
DWORD GetPrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName,LPCTSTR lpDefault, LPTSTR lpReturnedString,DWORD nSize, LPCTSTR lpFileName );
lpAppName:字段名
lpKeyName:字段名下的一个键值
lpDefault:如果lpReturnedString为空,则把个变量的值赋给lpReturnedString,也就是通常我们所说的默认值
lpReturnedString:存放键值数据的指针变量,用于接受INI文件中的键值下的数据,作为接受缓存区使用
nSize:lpReturnedString的缓冲区内存大小
lpFileName:INI文件的路径
3.接下来就是具体操作了,代码如下,已验证们可以正常读写
1 #include <iostream> 2 #include <Windows.h> 3 #include <Shlwapi.h> 4 #include <tchar.h> 5 6 #pragma comment (lib, "Shlwapi.lib") 7 8 #define count_of(exp) (sizeof(exp) / sizeof(exp[0])) 9 10 //INI文件名称 11 #define STUDENT_INFO _T("StudentInfo.ini") 12 13 //字节名 14 #define SECTION_NAME _T("INFO") 15 16 //键名 17 #define STUDENT_NAME _T("name") 18 #define STUDENT_AGE _T("age") 19 #define STUDENT_SEX _T("sex") 20 21 /* 22 路径:ini文件写到当前执行文件的目录下 23 */ 24 int main() 25 { 26 //获取当前执行文件的上一级文件的路径 27 WCHAR szFilePath[MAX_PATH] = { 0 }; 28 GetModuleFileName(NULL, szFilePath, MAX_PATH); 29 PathRemoveFileSpec(szFilePath); 30 31 //设置INI文件的路径 32 WCHAR szINIFilePath[MAX_PATH] = { 0 }; 33 PathCombine(szINIFilePath, szFilePath, STUDENT_INFO); 34 35 //向INI文件中写入信息 36 WritePrivateProfileString(SECTION_NAME, STUDENT_NAME, _T("Jack"), szINIFilePath); 37 WritePrivateProfileString(SECTION_NAME, STUDENT_AGE, _T("18"), szINIFilePath); 38 WritePrivateProfileString(SECTION_NAME, STUDENT_SEX, _T("Man"), szINIFilePath); 39 40 //从INI文件中获取信息 41 WCHAR szName[25] = { 0 }; 42 WCHAR szAge[25] = { 0 }; 43 WCHAR szSex[25] = { 0 }; 44 45 GetPrivateProfileString(SECTION_NAME, STUDENT_NAME, _T(""), szName, count_of(szName), szINIFilePath); 46 GetPrivateProfileString(SECTION_NAME, STUDENT_AGE, _T(""), szAge, count_of(szName), szINIFilePath); 47 GetPrivateProfileString(SECTION_NAME, STUDENT_SEX, _T(""), szSex, count_of(szName), szINIFilePath); 48 49 50 51 system("pause"); 52 53 return 0; 54 }
INI文件信息: