文档章节

windows下写文件

xxdd
 xxdd
发布于 2017/02/27 09:49
字数 853
阅读 96
收藏 1

windows编程中文件操作有以下几种常见方法:
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。

下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
  

写入文件:   

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);//关闭文件   

#include <stdio.h>
#include <afx.h>

void main()
{
 LPCTSTR lp = "hello";
 short s = 70;
 long l = 200;
 double d = 20.5;
 char buf[200];

 sprintf(buf, "%s %d %d %f\n", lp, s, l, d);

 FILE *fp;
 fp = fopen("c:\\ais1.txt", "wt");
 fprintf(fp, "%s", buf);
 fclose(fp);
}

2.C++语言中的文件操作。需要包含的头文件fstream.h
    

C++代码

写入文件:   

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
  

C++代码

写入文件:   

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

C++代码

写入文件:    

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

C++代码

写入文件:   

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.注册表文件操作。 
  

C++代码

写入注册表:   

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

 

© 著作权归作者所有

共有 人打赏支持
xxdd
粉丝 3
博文 54
码字总数 12958
作品 0
海淀
程序员
私信 提问
windows里面进程线程控制应该用什么头文件

linux下写的这段代码pthread_t id1,id2; windows下一直报错,估计是头文件的问题 请问windows里面进程线程控制应该用什么头文件?

jingzenghui
2011/06/30
1K
5
Windows下 .rtf 批量转换 .doc

Windows 下写个批处理。 @echo off echo 开始更改文件名…… set extension=.doc set/a sum=0 for %%m in (*) do ( if /i not "%%~nxm"=="%~nx0" ( if /i not "%%~xm"=="%extension%" ( ren ......

guanyunyue
2012/10/18
0
0
SublimeText2配置解决代码window下编辑代码提交到linux的格式问题

通常在windows下写代码,然后通过SVN或者直接copy到linux下会有格式问题。 比如^M的结束符问题,会造成shell,c等代码不能正常运行。 通常可以用vim在linux端暴力解决: :set ff=unix 会将该文...

张旭0512
2015/12/18
51
0
Linux的shell脚本如何修改windows的cmd批处理文件,主要是中文乱码问题

我有这样一个需求,服务器上上传有一些windows下写的cmd批处理,我需要在linux服务器上修改这些脚本。 脚本在windows下编写,里面有中文,在linux下就乱码了。cat和sed查看都是乱码的,vim设...

Feng_Yu
2013/11/13
598
1
bash: ./vartest.sh: /bin/sh^M: bad interpreter: No

在开始解决此问题前,我们先回顾一下linux与windows之间换行的区别 window下一行结束是rn,linux下没有回车'r',有换行,读完8个字符后是'n' 经分析认为此文件是在window下写的,所以在每行后面...

狼行-狼行
2014/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一文了解JVM全部垃圾回收器,从Serial到ZGC

《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同...

公众号_Zack说码
4分钟前
0
0
用七牛云做小程序直播不用资质只需要公安备案

一般做小程序需要到live-pusher和live-player 分别用于推拉流但要求太严格一般商户满足不了这种情况 暂只针对国内主体如下类目的小程序开放,需要先通过类目审核,再在小程序管理后台,“设置...

xiaogg
8分钟前
0
0
spring2

Spring第二天 回顾: IOC:控制反转,把对象的创建权利反转给spring框架。 IOC的作用:解耦 Spring中的工厂: ApplicationContext ClassPathXmlApplicationContext FileSystemXmlApplication...

码农屌丝
18分钟前
1
0
Postman请求向后台传递List数据

前后台分离项目,使用Postman对写好的接口进行测试,请求类型为Post需要向后台传递List<String> list数据下面是后台控制层的java代码 @RequestMapping(value = "/del",method = RequestMetho...

王子城
23分钟前
1
0
Java并发编程的艺术:Condition的实现分析

ConditionObject是同步器AbstractQueuedSynchronizer的内部类,因为Condition的操作需要获取相关联的锁,所以作为同步器的内部类也较为合理。每个Condition对象都包含着一个队列(以下称为等...

陈刚生
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部