windows编程中文件操作的几种方法,C,C++,MFC,Win32sdk
windows编程中文件操作的几种方法
windows编程中文件操作有以下几种常见方法:
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。
下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
写入文件:
fread(buffer,size,count,fp));
fwrite(buffer,size,count,,fp);
size:要读写的字节数(记录的长度).
count:要读写多少个size自己的数据项,即读/写的记录数。
返回:已读入或输出的项数,即执行成功返回count的值。
例如 fwrite(arr,80,3,fp);
表示从数组名arr所代表的数组起始地址开始,每次输出80B,共输出3次,即输出240B,输出到fp所指向的磁盘文件中。如果指向成功,返回值为3.
FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。
fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。
fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件
fclose(pfile);//关闭文件
读取文件:
FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent
MessageBox(FileContent);//输出结果
fclose(pfile);//关闭文件
2.C++语言中的文件操作。需要包含的头文件fstream.h
写入文件:
ofstream ofs("C++.txt");//建立ofstream对像。
ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件
ofs.close();//关闭ofstream对象。
读取文件:
ifstream ifs("C++.txt");
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
ifs.read(FileContent,100);//读取数据
ifs.close();//关闭ifstream对像
MessageBox(FileContent);//输出结果
3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
写入文件:

HANDLE hFile;//定义一个句柄。
hFile=CreateFile("API.txt",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile这个API函数打开文件
DWORD Written;
WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件
CloseHandle(hFile);//关闭句柄 读取文件: HANDLE hFile;//定义一个句柄。
hFile=CreateFile("API.txt",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile这个API函数打开文件
DWORD dwDataLen;
char FileContent[100];
ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据
FileContent[dwDataLen]=0;//将数组未尾设零。
CloseHandle(hFile);//关闭句柄
MessageBox(FileContent);//输出结果

4.MFC CFile类文件操作。需要包含的头文件afx.h
写入文件:

CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
file.Close();//关闭CFile对象。
读取文件:
CFile file("CFile.txt",CFile::modeRead);//构造CFile对象
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//读入数据
file.Close();//关闭文件对象
MessageBox(FileContent);//输出数据

5.MFC CFileDialog类的文件操作。需要包含的头文件Afxdlgs.h
写入文件:

CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
file.Close();
}; 读取文件: CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//读入数据
file.Close();//关闭文件对象
MessageBox(FileContent);
};

6.注册表文件操作。
写入注册表:

HKEY hKey;
DWORD dwSex=1;
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据
RegCloseKey(hKey);//关闭注册表键
读注册表:
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
DWORD dwType;
DWORD dwValue;
DWORD dwSex;
RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据
RegCloseKey(hKey);//关闭注册表键
CString str;
str.Format("sex=%d",dwSex);
MessageBox(str);
windows编程中文件操作的几种方法,C,C++,MFC,Win32sdk的更多相关文章
- Windows编程中各种操作文件的方法
windows编程中文件操作有以下几种常见方法:1.C语言中文件操作.2.C++语言中的文件操作.3.Win32 API函数文件操作.4.MFC CFile类文件操作.5.MFC CFileDialo ...
- Windows编程中char*转LPCWSTR解决的方法总结
Windows编程中常常涉及到的一个问题是字符串之间的转换,开发过程总是遇到编译器提示无法格式转换的问题.于是自己总结了几种解决的方法. 1.通过T2W转换宏 char* szStr = " ...
- C/C++:Windows编程—调用DLL程序的2种方法(转载)
文章为转载,原文出处https://blog.csdn.net/qq_29542611/article/details/86618902 前言先简单介绍下DLL.DLL:Dynamic Link Li ...
- android中文件操作的四种枚举
1.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用自身访问,在该模式下,写入的的内容会覆盖原文件中的内容. 2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件 ...
- Golang简单写文件操作的四种方法
package main import ( "bufio" //缓存IO "fmt" "io" "io/ioutil" ...
- 资源在windows编程中的应用----菜单
资源在Windows编程中的应用 资源 加速键.位图.光标.对话框.菜单.字符串.工具条 1.菜单的创建 菜单由以下组成部分: (1)窗口主菜单条 (2)下拉式菜单框 (3)菜单项热键标识 (4)菜单 ...
- Windows编程中UNICODE和_UNICODE定义问题
Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别 ...
- 在Windows 10中截取截图的6种方式 简介
在Windows 10中截取截图的6种方式 简介 截图对于不同的目的很重要.它可以用于捕获笔记本电脑上的任何内容的截图.所以,如果你使用Windows 10,你可能不知道如何截图,因为它是比较新的.因 ...
- C# winform编程中多线程操作控件方法
private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...
- Windows编程中的若干难点 - Windows程序设计(SDK)007
Windows编程中的若干难点 让编程改变世界 Change the world by program 一个窗口的生与死 我记得有童鞋会问:如果我的程序需要在关闭前让用户判断是否确定要关闭窗口,我应该 ...
随机推荐
- 将PaddleOCR 转为 ONNX 运行
PaddleOCR 是目前最好的开源OCR框架, 但paddle框架的兼容性实在不怎么好, 部署的时候容易出现各种各样的问题. 如果能把PaddleOCR转成ONNX, 就可以跳过paddle框架坑的 ...
- idea远程debug(物理机、docker、k8s)
IDEA远程DEBUG 1:物理机部署的Springboot项目远程DEBUG 1.1:idea配置 点击"Edit Configurations",再点击+,选择Remote, ...
- 【Ubuntu 1】ubuntu的软件包及便携系列 记录
目录 命令行补充[备注记录] 不想每次---- source /devel/setup.bash sudo chomd 777 /dev/ttyUSB* 安装区 --- 强推!Synergy Chro ...
- Plugin 'org.springframework.boot:spring-boot-maven-plugin:'not found
前言 在配置spring-boot的maven时,软件报错:Plugin 'org.springframework.boot:spring-boot-maven-plugin:'not found 在 ...
- ComfyUI基础篇:为什么要学 ComfyUI?
前言: 在AI生成图像领域,有许多产品,例如 Midjourney 和 Stability AI 等.为什么要学习 ComfyUI 呢?我斗胆带大家一起分析一下. 目录 1.Midjourney VS ...
- Linux使用Mysql数据库
启动MySQL: service mysqld start 或者使用如下命令: /etc/init.d/mysqld start 重新启动MySQL: service mysqld restart 或 ...
- C# 获取指定年月的第一天和最后一天、获取本月的第一天和最后一天、获取当前日期的星期几等
•获取指定年月的第一天 public static DateTime GetCurMonthFirstDay(string year,string mon) { DateTime AssemblDat ...
- Oracle 字符串分割,并将内码转中文(简单实现),项目实战
导读 实际项目开发过程中,可能会遇到这种情况,A表中A1字段存储B表中的内码如(1,2,3),此时需要将A表中的A1字段转中文,为了方便理解,我们这里创建学生表和老师表,一个学生对应N个老师. 创建表 ...
- Docker开始收费了,开始转学podman【第一篇podman容器的安装和基本操作】
podman 什么是Podman?Podman是无守护程序容器引擎,用于在Linux系统上开发,管理和运行OCI容器.容器可以以root用户或无根模式运行.简而言之:`alias docker = p ...
- [rCore学习笔记 013]GDB跟踪程序
题目要求 请学习 gdb 调试工具的使用(这对后续调试很重要),并通过 gdb 简单跟踪从机器加电到跳转到 0x80200000 的简单过程.只需要描述重要的跳转即可,只需要描述在 qemu 上的情况 ...