一、文件
1. c语言
FILE* fopen("路径","打开方式");
//r:只读,若不存在,打开失败
//w:只写,若存在,清空原内容
//a:追加,若存在,在原来基础上写
//r+:读写,文件必须存在
//w+:读写,若已存在,内容清空
//a+:读写,若已存在,追加
fwrite(szBuf,1,strlen(szBuf+1),FILE*);//fail:<=0
fclose(FILE*);
fseek(FILE*,0,SEEK_END);//偏移指针,获取偏移量
ftell(FILE*);//当前指针位置
fread(szBuf,1,len,FILE*);
2. c++
#include<io>
#include<fstream>
ofstream ofs("路径");//写文件
ofs.write("内容",len);
ofs.close();
ifstream ifs("路径");//读文件
ifs.read(szBuf,1024);
3. windows
CreateFile(对象名称,访问方式,共享方式,能否继承,如何创建,属性和标志,句柄);
HANDLE CreateFile("",CREATE_WRITE/READ,NULL,NULL,CREATE_NEW/OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
WriteFile(句柄,缓冲区,大小,实际写入的字节数,NULL);
WriteFile(HANDLE,szBuf,len,&wri,NULL);
ReadFile(HANDLE,szBuf,1024,&rea,NULL);
4. MFC
CFile file("文件名",CFILE::modeCreate|CFILE::modeWrite);
file.Write("内容",len);
file.Close();
CFile file("文件名",CFILE::modeRead);
file.Read(szBuf,file.GetLength());
//高级读文件
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle="Test";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
if(IDOK==fileDlg.DoModal()){
CFile file(fileDlg.GetFileName(),CFILE::modeRead);
file.Read(szBuf,file.GetLength());
}
二、配置文件.ini
//写配置文件
GetCurrentDirectory(MAX_PATH,szPath);
WritePrivateProfileString("param1","name","lili",szPath);//路径是要当前目录+\xx.ini
WritePrivateProfileString("param1","age","15",szPath);
WritePrivateProfileString("param2","name","haha",szPath);
//读配置文件
GetPrivateProfileString("param1","name",NULL,str1,1024,szPath);
GetPrivateProfileString("param1","age",NULL,str2,1024,szPath);
GetPrivateProfileString("param2","name",NULL,str3,1024,szPath);
三、注册表
注册表存储在二进制文件里
查看方法:win+r regedit
//创建注册表
HKEY hKey;
DWORD ret=::RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\MYWEIGHT\\admin",&hKey);//创建注册表
if(ret != ERROR_SUCCESS){"failed"};
//写注册表
ret = ::RegSetValueEx(hKey, "weight", NULL, REG_DWORD, (CONST BYTE*)&weight, 4);
//关闭注册表
::RegCloseKey(hKey);
//打开注册表
ret = ::RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\MYWEIGHT\\admin", &hKey);//创建注册表
//读注册表
ret = ::RegQueryValueEx(hKey, "weight", NULL, &dwType, (LPBYTE)&dwWeight, &dwSize);