C语言文件读写操作

忘是亡心i 2022-08-03 13:46 308阅读 0赞
  1. FILE文件流用于对文件的快速操作,主要的操作函数有fopenfseekfreadfclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要。以下分别进行说明,还有他们使用时的注意事项
  2. fopen
  3. 函数原型 FILE * fopen(const char *path,cost char *mode)
  4. 作用:打开一个文件,返回指向该文件的指针
  5. 参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式
  6. 注:mode有以下值:
  7. r:只读方式打开,文件必须存在
  8. r+:可读写,必须存在
  9. rb+:打开二进制文件,可以读写
  10. rt+:打开文本文件,可读写
  11. w:只写,文件存在则文件长度清0,文件不存在则建立该文件
  12. w+:可读写,文件存在则文件长度清0,文件不存在则建立该文件
  13. a:附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,EOF符保留
  14. a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留
  15. wb:打开二进制文件,只写
  16. wb+:打开或建立二进制文件,可读写
  17. wt+:打开或建立文本文件,可读写
  18. at+:打开文本文件,可读写,写的数据加在文本末尾
  19. ab+:打开二进制文件,可读写,写的数据加在文件末尾
  20. mode字符可知,上述如rwa在其后都可以加一个b,表示以二进制形式打开文件
  21. 返回值:文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存error code(错误代码)
  22. 注意:在fopen操作后要进行判断,是否文件打开,文件真正打开了才能进行后面的读或写操作,如有错误要进行错误处理
  23. 例:FILE *pfile=fopen(const char *filename,"rb");
  24. 打开文件流还有一个支持宽字符的函数,如下
  25. FILE *_wfopen(const wchar_t *filename,const wchar_t *mode)
  26. fread
  27. 函数原型:size_t fread(void* buff,size_t size,size_t count,FILE* stream)
  28. 作用:从文件中读入数据到指定的地址中
  29. 参数:第一个参数为接收数据的指针(buff),也即数据存储的地址
  30. 第二个参数为单个元素的大小,即由指针写入地址的数据大小,注意单位是字节
  31. 第三个参数为元素个数,即要读取的数据大小为size的元素个素
  32. 第四个参数为提供数据的文件指针,该指针指向文件内部数据
  33. 返回值:读取的总数据元素个数
  34. 例:
  35. int num,count;
  36. int* pr=new int[num*count];
  37. fread(pr, num*4, count, stream); // stream为fopen中返回的FILE指针
  38. 要将数据写入pr中,必须为pr分配内存,一个int4个字节,所以要x4
  39. fseek
  40. 函数原型:int fseek(FILE *stream,long offset,int framewhere)
  41. 作用:重定位文件内部的指针
  42. 参数:第一个为文件指针,第二个是指针的偏移量,第三个是指针偏移起始位置
  43. 返回值:重定位成功返回0,否则返回非零值
  44. 需要注意的是该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移到文件中我们感兴趣的数据上,重定位主要是这个目的。
  45. 说明:执行成功,则stream指向以fromwhere为基准,偏移offset个字节的位置。执行失败(比方说offset偏移的位置超出了文件大小),则保留原来stream的位置不变
  46. fclose
  47. 函数原型:int fclose(FILE *stream)
  48. 功能:关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区
  49. 熟练使用以上四个函数可以从文件中获取对我们有用的数据型,前提对于文件格式很了解,比如,对于一个DIB位图文件,就可以读取出他的文件中的头信息和像素点信息。

http://www.cnblogs.com/Romi/archive/2012/02/29/2374769.html

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言文件操作

    将一个磁盘文件中的信息复制到另一个磁盘文件中。 分析:从file1.dat文件中逐个字符读入,然后逐个输出到file2.dat中 include<stdio.h>

    相关 C语言——文件

    在济宁实训期间,有几个项目用到了文件读写,之前从来没接触过,反正也有时间,不如自学一下,从网上找了一篇比较好的文档。http://www.360doc.com/content/