投其所好,坚持不懈,快乐人生

生活的天平本不平衡,只有通过努力改变其偏向~

C++博客 首页 新随笔 联系 聚合 管理
  17 Posts :: 2 Stories :: 3 Comments :: 0 Trackbacks
在CSDN看到一篇关于总结Windows编程中的各中文件操作方法。作者只是列了一个大纲,本人那将篇文章补充一下,贴出来希望能给有这方面需要的朋友帮助。

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

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

C++代码
  1. 写入文件:   
  2. FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。   
  3. fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。   
  4. fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件   
  5. fclose(pfile);//关闭文件   
  6.   读取文件:   
  7. FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。   
  8. char FileContent[100];   
  9. memset(FileContent,0,100);//初始化FileContent   
  10. fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent   
  11. MessageBox(FileContent);//输出结果   
  12. fclose(pfile);//关闭文件   

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

C++代码
  1. 写入文件:   
  2.     ofstream ofs("C++.txt");//建立ofstream对像。   
  3.  ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件   
  4.  ofs.close();//关闭ofstream对象。   
  5.   读取文件:   
  6.  ifstream ifs("C++.txt");   
  7.  char FileContent[100];   
  8.  memset(FileContent,0,100);//初始化FileContent   
  9.  ifs.read(FileContent,100);//读取数据   
  10.  ifs.close();//关闭ifstream对像   
  11.  MessageBox(FileContent);//输出结果   

3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
  

C++代码
  1. 写入文件:   
  2.   HANDLE hFile;//定义一个句柄。   
  3.  hFile=CreateFile("API.txt",   
  4.   GENERIC_WRITE,   
  5.   FILE_SHARE_WRITE,   
  6.   NULL,   
  7.   CREATE_NEW,   
  8.   FILE_ATTRIBUTE_NORMAL,   
  9.   NULL);//使用CreatFile这个API函数打开文件   
  10.  DWORD Written;   
  11.  WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件   
  12.  CloseHandle(hFile);//关闭句柄   
  13.   读取文件:   
  14.   HANDLE hFile;//定义一个句柄。   
  15.  hFile=CreateFile("API.txt",   
  16.   GENERIC_READ,   
  17.   FILE_SHARE_READ,   
  18.   NULL,   
  19.   OPEN_EXISTING,   
  20.   FILE_ATTRIBUTE_NORMAL,   
  21.   NULL);//使用CreatFile这个API函数打开文件   
  22.  DWORD dwDataLen;   
  23.  char FileContent[100];   
  24.  ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据   
  25.  FileContent[dwDataLen]=0;//将数组未尾设零。   
  26.  CloseHandle(hFile);//关闭句柄   
  27.  MessageBox(FileContent);//输出结果   

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

C++代码
  1. 写入文件:   
  2.   CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象   
  3.   file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件   
  4.   file.Close();//关闭CFile对象。   
  5.  读取文件:   
  6.   CFile file("CFile.txt",CFile::modeRead);//构造CFile对象   
  7.   char FileContent[100];   
  8.   memset(FileContent,0,100);//初始化FileContent   
  9.   file.Read(FileContent,100);//读入数据   
  10.   file.Close();//关闭文件对象   
  11.   MessageBox(FileContent);//输出数据   

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

C++代码
  1. 写入文件:   
  2.   CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象   
  3.  if(IDOK==fileDlg.DoModal())   
  4.  {   
  5.   CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象   
  6.   file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件   
  7.   file.Close();    
  8.  };   
  9.  读取文件:   
  10.   CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象   
  11.  if(IDOK==fileDlg.DoModal())   
  12.  {   
  13.   CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象   
  14.   char FileContent[100];   
  15.   memset(FileContent,0,100);//初始化FileContent   
  16.   file.Read(FileContent,100);//读入数据   
  17.   file.Close();//关闭文件对象   
  18.   MessageBox(FileContent);    
  19.  };   

 
6.注册表文件操作。 
  

C++代码
  1.   写入注册表:   
  2.   HKEY hKey;   
  3.   DWORD dwSex=1;   
  4.   RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键   
  5.   RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据   
  6.   RegCloseKey(hKey);//关闭注册表键   
  7.  读注册表:   
  8.   HKEY hKey;   
  9.   RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键   
  10.   DWORD dwType;   
  11.   DWORD dwValue;   
  12.   DWORD dwSex;   
  13.   RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据   
  14.   RegCloseKey(hKey);//关闭注册表键   
  15.   CString str;   
  16.   str.Format("sex=%d",dwSex);   
  17.   MessageBox(str);   

//以上代码在VC6.0,Windows 2K server下编译通过。

posted on 2008-03-10 16:27 snail 阅读(548) 评论(0)  编辑 收藏 引用 所属分类: VC++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理