77范文网 - 专业文章范例文档资料分享平台

C语言-桂林理工大学11-第十一章 文件操作

来源:网络收集 时间:2019-01-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C语言程序设计 授课教案

学时安排:2 ~4

授课题目:第十一章 文件操作 目标要求:

掌握文件类型指针的使用;熟悉文件操作函数的功能和使用;了解文件的概念 授课类型: 理论课 授课场地: 教室 教学方式:讲授、演示、提问、讨论 教辅设备: 投影仪 授课内容:

第十一章 文件操作

11.1 文件概述

1、文件:存储在外部介质上一组相关数据的集合。

例如,程序文件就是程序代码的集合;数据文件是数据的集合。

2、文件名:操作系统以文件为单位对数据进行管理,每个文件有一个名称,文件名是文件的

标识,操作系统通过文件名访问文件。

例如,通过文件名查找,打开文件,然后读取或写入数据。

3、磁盘文件、设备文件:

(1) 磁盘文件:文件一般保存在磁介质(如软盘、硬盘)上,所以称为磁盘文件。 (2) 设备文件:操作系统还经常将与主机相连接的I/O设备(如键盘-输入文件、显示器、

打印机-输出文件)也看作为文件,即设备文件。

很多磁盘文件的概念、操作,对设备文件也同样有意义,有效。

4、ASCII文件、二进制文件:根据文件的组织形式,文件可以分为ASCII文件和二进制文

件。

(1)ASCII文件(文本文件):每个字节存放一个ASCII码,代表一个字符。ASCII文件可以

阅读,可以打印,但是它与内存数据交换时需要转换。

(2)二进制文件:将内存中的数据按照其在内存中的存储形式原样输出、并保存在文件中。

二进制文件占用空间少,内存数据和磁盘数据交换时无须转换,但是二进制文件不可阅读、打印。

1 C语言程序设计 授课教案

例如:同样的整数10000,如果保存在文本文件中,就可以用notepad,edit等文本编辑器阅读,也可以在dos下用type显示,它占用5个字节;如果保存在二进制文件中,不能阅读,但是我们知道一个整数在内存中用补码表示并占用2个字节,所以如果保存在二进制文件中就占用2个字节。

文本文件/二进制文件不是用后缀来确定的,而是以内容来确定的,但是文件后缀往往隐含其类别,如*.txt代表文本文件,*.doc,*.bmp,*.exe二进制文件。

5、缓冲文件系统、非缓冲文件系统:

(1)缓冲文件系统:系统自动地在内存中为每个正在使用的文件开辟一个缓冲区。在从磁盘

读数据时,一次从磁盘文件将一些数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个将数据送给接受变量;向磁盘文件输出数据时,先将数据送到内存缓冲区,装满缓冲区后才一起输出到磁盘。减少对磁盘的实际访问(读/写)次数。ANSI C只采用缓冲文件系统。

(2)非缓冲文件系统:不由系统自动设置缓冲区,而由用户根据需要设置。 C语言中,没有输入输出语句,对文件的读写都是用库函数实现的。

11.2文件类型

1、文件类型(结构体)- FILE类型

FILE类型是一种结构体类型,在stdio.h中定义,用于存放文件的当前的有关信息。 程序使用一个文件,系统就为此文件开辟一个FILE类型变量。程序使用几个文件,系统就开辟几个FILE类型变量,存放各个文件的相关信息。

2、文件指针变量(文件指针)

typedef struct { short level; /* fill/empty level of buffer */ unsigned flags; /* 文件状态标志 */ char fd; /* 文件描述符 */ unsigned char hold; /* Ungetc char if no buffer */ short bsize; /* 缓冲区大小 */ unsigned char *buffer; /* 数据传输缓冲区 */ unsigned char *curp; /* 当前激活指针 */ unsigned istemp; /* 临时文件指示器 */ short token; /* 用于合法性校合 */ } FILE; 2 C语言程序设计 授课教案

通常对FILE结构体的访问是通过FILE类型指针变量(简称:文件指针)完成,文件指针变量指向文件类型变量,简单地说,文件指针指向文件。

事实上只需要使用文件指针完成文件的操作,根本不必关心文件类型变量的内容。在打开一个文件后,系统开辟一个文件变量并返回此文件的文件指针;将此文件指针保存在一个文件指针变量中,以后所有对文件的操作都通过此文件指针变量完成;直到关闭文件,文件指针指向的文件类型变量释放。 例如:

定义一个指向文件的指针变量fp。 */ fp=fopen(“mydata.txt”,...); /* 打开文件时,系统开辟一个文件变量,并返回文件 指针,将此指针赋值(保存)给文件指针变量fp */ ......(文件操作函数,会引用文件指针fp) fclose(fp); /* 关闭文件,释放文件指针fp指向的文件变量 */

11.3 文件的打开与关闭

对文件的操作的步骤:先打开,后读写,最后关闭。

文件的打开(fopen函数)

1、文件的打开后才能进行操作,文件打开通过调用fopen函数实现。

调用fopen的格式是:

注意:一定将函数返回的文件指针赋值给“文件指针变量”。 例如: FILE *fp;

fp=fopen(“d:\\\\a1.txt”,“r”); 说明:

(1)打开d:盘根目录下文件名为a1.txt的文件,打开方式“r”表示只读。

FFILE *fp; 3 C语言程序设计 授课教案

(2)fopen函数返回指向d:\\a1.txt的文件指针,然后赋值给fp,fp->此文件,即fp与此文

件关联。

(3)关于文件名要注意:文件名包含文件名.扩展名;路径要用“\\\\”表示。

(4)关于打开方式,可以参看p204,表12-1,p205,表12-2。简单地看,文件打开方式包含

下面几类表示打开方式的关键词,不同类的可以组合。 ? ? ?

2、文件打开方式(使用方式)的说明

(1)文件打开一定要检查fopen函数的返回值。因为有可能文件不能正常打开。不能正常打

开时fopen函数返回NULL。 可以用下面的形式检查:

if((fp=fopen(...))==NULL){ printf(“error open file\\n”); exit(1); }

(2)“r”方式:只能从文件读入数据而不能向文件写入数据。该方式要求欲打开的文件已经

存在。

(3)“w”方式:只能向文件写入数据而不能从文件读入数据。如果文件不存在,创建文件,

如果文件存在,原来文件被删除,然后重新创建文件(相当覆盖原来文件)。

(4)“a”方式:在文件末尾添加数据,而不删除原来文件。该方式要求欲打开的文件已经存

在。

(5)“+”(“r+,w+,a+”):均为可读、可写。但是“r+”,“a+”要求文件已经存在,

“w+”无此要求;“r+”打开文件时文件指针指向文件开头,“a+”打开文件时文件指针指向文件末尾。

(6)“b、t”:以二进制或文本方式打开文件。默认是文本方式,t可以省略。读文本文件

时,将“回车”/“换行”转换为一个“换行”;写文本文件时,将“换行”转换为“回车/换行”。

(7)程序开始运行时,系统自动打开三个标准文件:标准输入,标准输出,标准出错输出。

一般这三个文件对应于终端(键盘、显示器)。这三个文件不需要手工打开,就可以使用。标准文件:标准输入,标准输出,标准出错输出对应的文件指针是stdin,stdout,stderr。

“r,w,a”:读、写、添加

“b,t”:二进制,文本文件。默认为文本方式,即没有b就是以文本方式打开文件。 “+”:可读写

4 C语言程序设计 授课教案

文件的关闭(fclose函数)

文件使用完毕后必须关闭,以避免数据丢失。 格式:fclose(文件指针);

11.4 文件的读写操作

常用的文件读写函数: 1、字符读写函数:fgetc,fputc 2、字符串读写函数:fgets,fputs 3、格式化读写函数:fscanf,fprintf 4、数据块读写函数:fread,fwrite 说明:

1、这些函数都以f(file)开头。

2、这些函数都要使用打开文件时获得的文件指针。 3、前三类函数与标准I/O函数使用基本相同。

4、一般,对于文本文件使用“顺序访问”方式操作,对于二进制文件使用“随机访问”方式

操作。

11.4.1 字符读写函数 1、写一个字符到磁盘文件: 格式:fputc(ch,fp)

功能:将字符ch(可以是字符表达式,字符常量、变量等)写入fp所指向的文件。 返回:输出成功返回值-输出的字符ch;输出失败-返回EOF(-1)。 其它说明:每次写入一个字符,文件位置指针自动指向下一个字节。

例:从键盘输入一行字符,写入到文本文件string.txt中。(P.206)

一般用二进制方式打开文件 一般用文本方式打开文件 5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言-桂林理工大学11-第十一章 文件操作在线全文阅读。

C语言-桂林理工大学11-第十一章 文件操作.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/416469.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: