C语言学习笔记---文件操作 fopen()函数 和 fclose()函数

x33g5p2x  于2021-11-01 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(540)

fopen()函数

在C语言中fopen()函数用来打开文件。该函数声明在stdio.h中。它的第一个参数是待打开文件的名称,更确切的说是一个包含文件名的字符串地址。第二个参数是一个字符串,指定待打开文件的模式。

下面表格中列出了常见的文件操作模式:

  当程序成功打开文件后,fopen()函数将返回一个文件指针,该文件指针的类型是指向FILE的指针,FILE是一个定义在stdio.h中的派生类型。也就是一个结构体。定义如下:

  1. struct _iobuf {
  2.     char *_ptr; //文件输入的下一个位置
  3.     int _cnt; //当前缓冲区的相对位置
  4.     char *_base; //指基础位置(即是文件的其始位置)
  5.     int _flag; //文件标志
  6.     int _file; //文件的有效性验证
  7.     int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
  8.     int _bufsiz; //缓冲区大小
  9.     char *_tmpfname; //临时文件名
  10. };
  11. typedef struct _iobuf FILE;

通过typedef定义了 文件类型 的别名: “FILE”。它里面包含了当前打开文件的描述信息。
在不同的系统中FILE结构体里面的内容也是不一样的,所以不用关注FILE结构体中的具体内容,只要会使用就行了。

fclose()函数

当文件打开后需要关闭时,要调用fclose()函数就行文件的关闭,它只需要一个参数,就是使用fopen()函数打开文件后返回的FILE类型指针。如果关闭成功返回0,如果关闭失败则返回EOF;

下面通过一个例子来演示这两个函数的用法:

  1. int main()
  2. {
  3. FILE *fp;
  4. int ret;
  5. /* 打开文件 */
  6. fp = fopen("123.txt","r");
  7. if(fp==NULL)
  8. puts("打开失败!");
  9. else
  10. puts("打开成功!");
  11. /* 关闭文件 */
  12. ret = fclose(fp);
  13. if(ret == 0)
  14. puts("关闭成功!");
  15. else
  16. puts("关闭失败!");
  17. system("pause");
  18. return 0;
  19. }

使用fopen()函数打开一个记事本,然后在使用fclose()函数关闭记事本。

   当文件存在时打开和关闭都成功,记事本如果和和当前C文件在一个目录中,在填写文件名的时候就不需要带路径。如果要打开的记事本和当前C文件不在同一个目录中,输入文件名的时候需要输入文件的全路径。如果打开的文件路径不存在,则打开和关闭文件都会失败。

相关文章