工信版(中职)编程语言基础——C语言模块8教学课件
2022-10-26
|
44页
|
127人阅读
|
1人下载
普通
内容正文:
YCF
(中职)编程语言基础——C语言模块8教学课件
1
模块8文件
任务1 文件的定义和分类
任务2 文件的打开与关闭
任务3 文件的读写
任务1文件的定义和分类
8.1.1 文件的定义
通常,文件(File)是指保存在某种外部存储介质上的一组意义相关的数据集合。每个文件都必须用一个文件名来进行标识。操作系统就是根据文件的名称来对文件进行存取操作的。用户也可以建立自己的文件,用不同的名字和后缀(扩展名)来表示文件的意义和类型。由文件的定义还可以看出,文件操作一般会涉及外部存储介质的存储操作,通常的访问对象是磁盘。
上面所讲的文件实际上是指磁盘文件,但在操作系统中,许多外部设备也可以被看做是文件,这样的文件称为设备文件。每个设备都有唯一的一个设备文件名。在C语言系统中,也采用类似的方法。C系统定义了5个标准设备文件,如表8-1所示。
下一页
返回
任务1文件的定义和分类
8.1.2 文件的分类
文件有很多种,常见的有文本文件、图形文件、声音文件、可执行文件等,它们可以有很多分类方法。而c语言关心的是文件中数据的存储方式,就此而言,文件分为以下两类。
1. 文本文件
文本文件是指由字符组成的文件。字符可以是字母、数字、运算符等,每个字符通过相应的编码存储在文件中。目前常用的编码是ASCII码,它用一个字节来对这些字符进行编码。
2. 二进制文件
二进制文件是指数据按存储原样组成的文件。仍以存储数16为例,在二进制文件中直接存放的就是16,因此只要占用一个字节就行了。
上一页
返回
任务2文件的打开与关闭
8.2.1 文件的打开
(fopen()函数)函数用来打开文件,正常操作时,它将为 用户指定的文件在内存中分配一个FILE结构区,并将该结构区的指针作为函数值返回,以后用户可以通过指针来对文件进行存取操作。
1. 一般形式
上一页
返回
下一页
任务2文件的打开与关闭
2. 说明
文件指针变量要在使用前进行定义;文件名是字符串或字符串变量。若是字符串变量,应在使用前赋值;方式表示欲对所打开的文件进行的访问方式。Turbo C所使用的标记符和含义如表8-2所示。
(1)当用”w”方式打开一个文件时,若已存在与该文件名相同的文件则会被抹掉,重建一个新文件。若不存在该文件,则新建一个用该文件名命名的文件。
(2)当用”r”方式或”a”方式打开一个文件时,该文件必须存在,不然会返回一个出错信息。
上一页
返回
下一页
任务2文件的打开与关闭
(3)给文件名变量赋值或书写文件名字符串时,应注意文件名包括盘符和路径。路径的分隔符要加上转义字符“\”,因此在格式中出现的是“c: \data\...”。如果被打开的文件在当前盘当前目录下,则盘符和路径可以省略。
(4)如果需要向文件尾部添加新的数据(不删除原有数据),则应该用“a”方式打开。但此时该文件必须已经存在,否则将得到出错信息。用该方式打开文件时,其内部的位置指针指向文件尾。
(5)用“r+”、“w+”、"a+”方式打开的文件可以用来输入和输出数据。
上一页
返回
下一页
任务2文件的打开与关闭
(6)如果不能实现“打开”的任务,fopen函数将返回一个NULL空指针。经常利用这一点来判断文件的打开操作是否正常,若不正常,则应给出相应的出错信息。
(7)在应用文本文件向计算机输入时,将回车换行符转换为一个换行符,在输出时把换行符转换成为回车和换行两个字符。在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致。
(8)在程序开始运行时,系统自动打开3个标准文件:标准输入、标准输出、标准出错输出。通常这3个文件都与终端相联系。
上一页
返回
下一页
任务2文件的打开与关闭
8.2.2 文件的关闭(fclose()函数)
文件操作完以后,为了确保数据保存的完整性,一定要关闭文件。文件关闭后,该文件对应的FILE结构区便被释放,从而使被关闭的文件得到保护。此后,文件指针变量与文件脱离指向关系,以后不能再通过该指针对其相连的文件进行读写操作。
1. 一般形式
上一页
返回
下一页
任务2文件的打开与关闭
2. 说明
文件指针变量是在文件打开之前定义的,打开时,将它指向打开的文件,以便对文件进行读写操作。关闭文件,就是使文件指针变量不再指向该文件,同时将尚未写入磁盘的数据(存在内存缓冲区中的数据)写入磁盘,从而保证写入文件的数据的完整性。作为良好的习惯,应该在文件操作完毕及时进行关闭。C语言的流式文件,在打开时建立一个内存文件缓冲区,读写数据是通过批处理方式对磁盘进行工作的。当写数据时写满缓冲区才向磁盘写一次,因此,若在缓冲区不满时结束操作,文件中的数据可能不全;但在文件关闭时,不管缓冲区是否已满,都要向磁盘文件中
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。