c/c++文件相关

本文介绍了C/C++语言中文件操作(如fopen/fwrite/fread和C++流类)、WindowsAPI的CreateFile/WriteFile/ReadFile、MFC的CFile类以及配置文件.ini和注册表的读写方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文件

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值