浅谈C语言文件操作

1.文件

1.1文件的定义

文件是什么?我们来看下面这段定义:

文件是操作系统中的一个重要概念。文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序,等等。

简单来说,文件是用来存储信息的,其存在的目的是为了实现数据持久化。
在程序设计中,文件通常分为两种:程序文件和数据文件。

  1. 程序文件:程序文件又被称为可执行文件或代码文件,是包含计算机程序代码的文件。它们通常包含一系列指令和命令,告诉计算机如何执行特定的任务。程序文件在计算机上运行时,会被解释和执行,从而实现特定的功能.
  2. 数据文件:数据文件是存储数据信息的文件,它们包含特定领域的数据,例如文本文件、图像文件、视频文件和音频文件等。数据文件中的数据可以被程序文件读取和操作.

1.2文件名

文件名的构成:文件路径+文件名主干+文件后缀

  1. 文件路径:文件路径是指从盘符到该文件所经历的路径中各符号的集合
  2. 文件名主干:即文件标识,也就是我们常说的文件名
  3. 文件后缀:文件后缀决定了文件的默认打开方式,如 txt 表示文本文件,jpg表示图像文件等,当然文件后缀在文件名中并不是必需的,可以缺失。

举一个例子:
c:\code\test.txt 意思是c盘根目录code文件夹下,文件名主干为test,文件后缀为 txt 的文件.


2.文件操作

对于文件而言,操作通常分为三步:打开文件、操作文件以及关闭文件。
以下,我们将从这三个方面来详细了解文件操作。

2.1打开文件

在C语言中,打开文件我们使用fopen函数。
在这里插入图片描述

  1. FILE*: fopen函数的返回值类型是一个FILE* 类型的指针。fopen打开相应文件时,会在内存中创建一个与此文件对应的文件信息区,这个文件信息区实质上就是一个FILE类型的结构体。返回一个FILE* 类型的指针,实质上就是通过维护内存中的文件信息区,进而达到维护硬盘上数据文件的目的。
  2. filename:这个参数就是指文件名。此处的文件名有绝对路径和相对路径之分。绝对路径就是最完整的文件名,所以使用绝对文件的绝对路径绝对能找到相应文件;而相对路径特别用于源文件所在目录下的其它数据文件,也就是说相对路径是只在源文件所在目录下查找相应文件的,限定了查找范围 。
  3. mode:mode意即”格式“,是用来表明对该文件进行怎样的操作,以下列出一些常用的mode。
    在这里插入图片描述
    当然,除此之外,还有两个用得比较多,以二进制的形式读rb 和以二进制的形式写wb

以下代码是打开文件的一个示例:
在这里插入图片描述


2.2操作文件

操作文件有很多函数,这些函数大致可分为两类:

  1. 从数据文件中读取数据的函数,即数据从硬盘文件到内存:fgetc\fgets\fscanf\fread。其中前三者均适用于所有输入流,而最后一个fread只适用于从文件中读取数据,且是特指以二进制的形式读。
  2. 向数据文件中写入数据的函数,即数据从内存到硬盘文件:fputc\fputs\fprintf\fwrite。其中前三者均适用于所有输出流,而最后fwrite只适用于向文件中写入数据,且是特指以二进制的形式写。

以上这些函数在此不过多赘述,只在此说明一点,对于一个文件,不能在读取的同时,又进行写入操作,这是无法实现的,必须分别进行:

在这里插入图片描述

2.2.1文件读取检验

在文件读取中,文件读取结束并不一定意味着读取正常,遇到文件末尾会读取结束,文件读取出错也会结束,所以我们该如何判断一个文件读取结束时,究竟是哪种情况呢?

我们可以适用ferrorfeof这两个函数来进行鉴别,其中ferror用来判断文件读取是否因读取出错而结束,feof用来判断文件读取是否因遇到文件末尾而结束。

以下是函数使用示例:
在这里插入图片描述

2.3关闭文件

在这里插入图片描述
关闭文件较为简单,使用到fclose函数,参数即为相应的FILE*类型的指针变量。
上述代码中已有示例,此处不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值