C及C程序设计磁盘文件操作(IO系统)

上传人:宝路 文档编号:47585265 上传时间:2018-07-03 格式:PPT 页数:25 大小:82.61KB
返回 下载 相关 举报
C及C程序设计磁盘文件操作(IO系统)_第1页
第1页 / 共25页
C及C程序设计磁盘文件操作(IO系统)_第2页
第2页 / 共25页
C及C程序设计磁盘文件操作(IO系统)_第3页
第3页 / 共25页
C及C程序设计磁盘文件操作(IO系统)_第4页
第4页 / 共25页
C及C程序设计磁盘文件操作(IO系统)_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C及C程序设计磁盘文件操作(IO系统)》由会员分享,可在线阅读,更多相关《C及C程序设计磁盘文件操作(IO系统)(25页珍藏版)》请在金锄头文库上搜索。

1、人民邮电出版社第十三章 磁盘文件操作 (I/O系统)人民邮电出版社13.1 文件概述13.2 控制台I/O13.3 ANSI 文件I/O系统人民邮电出版社13.1.1 C文件的概念文件(file)是计算机技术中的一个重要概念。文 件一词我们多次使用。从操作系统的角度,与主机相连的输入输出设 备,也看做是文件。 13.1 文件概述人民邮电出版社13.1.2 流的概念ANSI C的文件系统适用于多种设备,如终端、磁 盘和磁带等设备。根据文件存储形式的不同,有两种类型的流:文 本流和二进制流。1. 文本流文本流是一个ASCII码字符序列。根据具体环境的 需要,可能会有一定的字符要进行转换。2. 二进

2、制流二进制流是一组字节序列。它与设备之间传递的 数据存在一一对应的关系,即没有任何字符的转换。 人民邮电出版社13.1.3 缓冲文件系统和非缓冲文件系统C语言支持两种文件系统:缓冲文件系统和非 缓冲文件系统。所谓缓冲文件系统(buffered file system) 是指 在进行I/O操作时,系统自动为每个打开的文件开 辟一个内存缓冲区。 所谓非缓冲文件系统(unbuffered file system) 是指系统不自动开辟内存缓冲区,而是由程序自 己为每个文件设定缓冲区。人民邮电出版社13.2 控制台I/O13.2.1 简单的控制台I/O函数1. 读写字符表中读写字符的四个函数的原型如下:

3、int getche(void);int puthar(int);int getchar(void);int getch(void);函数getchar()是函数getche()的一个变体。由于 它要求输入回车,就有可能在函数返回之后留下字 符在输入流中。 人民邮电出版社2. 读写字符串用于控制台读写字符串的函数为gets()和puts()。 它们的原型如下:char *gets(char *);int puts(char *);并且都在头文件stdio.h中说明。gets()函数从键盘读入一个字符串,放到指针参数 指定的地址中。 puts()函数的功能是在屏幕上显示一字符串,后跟 一个新行符

4、。人民邮电出版社13.2.2 格式化的控制台I/O除了前面所介绍的简单控制台I/O函数以外, 标准函数库中还有两个格式化输入输出函数: printf()和scanf()。 人民邮电出版社13.2.3 标准设备文件及I/O改向当进行输入输出操作时,一般输入设备为键盘, 输出设备为显示器。这是系统规定的,称这些设备为 标准设备。 标准设备文件的改向操作,是在执行用户程序文 件时,用改向操作符实现的。有两个改向操作符,它 们是:标准输出文件改向。人民邮电出版社13.3 ANSI 文件I/O系统ANSI 文件I/O 系统,也称为缓冲文件输入输 出系统。它由一些相互关联的函数组成。 人民邮电出版社 13

5、.3.1 文件结构类型和文件指针首先引入一个新的数据类型,即文件结构 类型。在ANSI 文件I/O系统中,每个被使用的文 件,都在内存开辟一个区,用于存放文件的相 关信息,如文件名、文件状态、文件缓冲区位 置以及当前的读写位置等。 指向FILE结构的指针称为文件指针。文件 指针变量定义的一般形式为:FILE *文件指针名;人民邮电出版社13.3.2 打开文件和关闭文件文件操作的总流程是:打开文件操作文件 关闭文件。所谓打开文件,就是把一个流同一个文件联 系起来,使得能够进行文件的输入和输出操作。 人民邮电出版社1. 文件打开函数fopen()打开文件是通过函数fopen()实现的。此函数 要完

6、成下列两个功能:第一,打开一个流并把它同一个需要打开的 文件联系起来;第二,返回该文件的文件指针。fopen()函数的原型如下:FILE *fopen(char *filename, char *mode);人民邮电出版社用“r”模式打开的文件,只能用于向计算机输入 数据(读文件),不能向该文件输出数据(写文件)。此 模式要求所要打开的文件必须是已经存在,否则在打 开时出错。用“w”模式打开的文件只能用于向文件写数据 ,不能用来向计算机输入数据。 用“a”模式打开的文件,可以向文件的末尾添 加数据。 用“r+”、“w+”和“a+”打开的文件,既可 以用作写也可以用作读。 人民邮电出版社2. 文

7、件关闭函数 fclose() 函数fclose()用于关闭用fopen()打开的文件。函数fclose()的原型为:int fclose(FILE *fp);这里fp是调用fopen()时,它返回的文件指针。 人民邮电出版社13.3.3 文件的读和写1. 函数fgetc()和fputc(函数getc()和putc()函数fgetc()此函数的功能是,从指定文件读入一个字符。它的 原形为:int getc(File *fp);fp为文件指针。 人民邮电出版社函数fputc()此函数的功能是,向指定文件写一个字符。它 的原型为:int putc(int ch, FILE *fp);其中fp为文件指

8、针,ch为字符变量,其值即为 所要写进文件的字符。 人民邮电出版社2. 函数 feof()、ferror()和rewind() 的应用(1) 函数 feof()为了能同时适用于文本文件和二进制文件,可采用 二进制模式打开文件。 (2) 函数 ferror()ferror()函数可用来确定文件操作是否出现了错误。 (3) 函数 rewind()rewind()函数用于将其参数所指示的文件指针,定 位到文件的开头。 人民邮电出版社3. 函数 getw() 和 putw()函数getw()和putw()分别用于读和写磁盘文 件中的整数。 人民邮电出版社4. 函数 fgets() 和 fputs()函

9、数fgets()和fputs()分别用于读和写磁盘文件 的字符串,其原型如下:char *fputs(char *str, FILE *fp);char *fgets(char *str,int length, FILE *fp);函数fgets()从指定的流读一个字符串,直到 遇到新行符或读够了length-1个字符。 人民邮电出版社5. 函数 fread() 和 fwrite()函数fread()和函数fwrite()分别用于读和写数据 块(一组数据)。它们的原型如下:unsigned fread(void *buffer,int num_bytes,int count,FILE *fp)

10、;unsigned fwrite(void *buffer,int num_bytes,int count,FILE *fp);人民邮电出版社6. 函数fprintf()和fscanf()对磁盘文件的格式化I/O操作是通过fprintf()和 fscanf()两个函数实现的。它们同函数printf()和 scanf()很相似,只是它们是对磁盘文件操作而不是 控制台。函数fprintf()和fscanf()的原型为:int fprintf(FILE *fp, char *control_string, .);int fscanf(FILE *fp, char *control_string, .

11、);人民邮电出版社13.3.4 文件的定位与文件的随机存取1. 函数rewind()函数的原型如下:void rewind(FILE *fp)2. 函数fseek()函数的原型如下:int fseek(FILE *fp,long number_bytes,int origin);人民邮电出版社3. 函数ftell() 在程序运行中,随着对文件的操作,文件的位 置指针,是经常变动的。有时可能不清楚当前指针 所指的位置。函数ftell()的作用是获取文件当前的操 作(读或写)的位置。函数ftell()的原型为:long ftell(FILE *fp)它的返回值是fp所指向的文件中的读写位置。 人民邮电出版社13.3.5 删除文件函数remove()用于删除指定的文件,它的原型 为:int remove(char *file_name);返回值为0时,表示操作成功;而为非0则表示 失败。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号