文档详情

《C语言综合实验》3文件.ppt

发布:2016-11-15约9.58千字共35页下载文档
文本预览下载声明
C语言综合实验 文件输入输出 文件输入输出 §1 文件的概念 §2 文件的使用 §3 文件的打开与关闭 §4 文件的读写 §5 其它读写函数 §6 文件的定位 §7文件输入输出小结 * * 1 文件的概念 2 文件的使用 3 文件的打开与关闭 4 文件的读写 5 其它读写函数 6 文件的定位 7 小结 1、所谓文件:一般指存储在外部介质上数据的集合。 一批数据是以文件的形式存储在外部介质(磁盘、磁带、光盘等)上的。 2、文件操作的途径:   操作系统对外部介质上的数据以文件为单位进行管理;不同的文件通过文件名来区分。   如果想从外部介质上的文件中读取数据,必须先按文件名找到所指定的文件,然后再从该文件中读出数据;如果要向外部介质上存储数据也必须先建立一个文件或按指定的文件名找到指定的文件,再把数据写入文件。 3、C语言把文件看作是一个字符(或字节)的序列,即由一个一个字符(或字节)的数据顺序组成;称为流式文件。 根据数据的组织形式,可分为文本文件和二进制文件。   文本文件又称为ASCII码文件,即每一个字节存放着一个字符的ASCII码。 如:整数10000 内存中存储形式00100111 文本存储形式:0011000000110000  二进制文件是把数据按其在内存中的存储形式原样存放。 (二进制形式)   用ASCII码形式输出与字符一一对应,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符;但一般占存储空间较多,而且要花费转换时间。   用二进制形式输出数值,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。 4、缓冲文件系统和非缓冲文件系统   所谓缓冲文件系统是指系统自动的在内存区为每一个正在使用的文件开辟一个缓冲区。   所谓非缓冲文件系统是指系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。   用缓冲文件系统进行的输入输出又称为高级磁盘输入输出系统,用非缓冲文件系统进行的输入输出又称为低级磁盘输入输出系统。ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲文件系统。 程序数据区 输入文件缓冲区 输出文件缓冲区 磁盘文件 内存 5、对文件的两种操作: ① 读操作:从已建立的文件中读取数据 ② 写操作:建立一个新文件和向已建立的文件中追加数据、插入数据或修改数据等 6、在C语言中,没有文件输入输出语句,对文件的读写都是用库函数来实现的。 #include stdio.h   每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息。这些信息是保存在一个结构体变量FILE中的,该结构体类型由系统定义。 FILE的定义如下: typedef struct { short level; unsigned flags; char fd; unsigned char hold; short bsize; unsigned char *buffer; unsigned char *curp; unsigned istemp; short token; }FILE ; /* 缓冲区满或空的程度 */ /* 文件状态标志 */ /* 文件描述符 */ /* 无缓冲区不读取字符 */ /* 缓冲区的大小 */ /* 数据缓冲区的位置 */ /* 指针当前指向 */ /* 临时文件指示器 */ /* 用于有效性检查 */ FILE *fp;   定义fp是指向FILE类型结构体的指针变量,可以使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。   也就是说,通过文件指针变量能够找到与它相关的文件。 文件操作的一般步骤: (1)首先用fopen函数打开文件; (2) 然后可以对文件进行读或写操作。往文件中写数据的函数有:fputc、fwrite、fprintf、fputs、putw等;从文件中读数据的函数有:fgetc、fread、fscanf、fgets、getw等; (3) 对文件的读写操作结束后,应该及时关闭文件。关闭文件是调用fclose函数; 返回文件位置指针的当前值 ftell(fp) 使文件位置指针重新置于文件开头 rewind(fp) 文件定位 改变文件的位置指针 fseek(fp,n,k) 关闭文件 fclose(fp) 关闭文件 打开文件 fopen(fp) 打开文件 使ferror和feof函数值置零。 clearerr(fp ) 若对文件操作出错,函数值为真(非0)。
显示全部
相似文档