当前位置:文档之家› C及C++程序设计 第十三章 磁盘文件操作(IO系统)

C及C++程序设计 第十三章 磁盘文件操作(IO系统)


人民邮电出版社
5. 函数 fread() 和 fwrite() 函数fread()和函数 和函数fwrite()分别用于读和写数据 函数 和函数 分别用于读和写数据 一组数据)。 块(一组数据 。它们的原型如下: 一组数据 它们的原型如下: unsigned fread(void *buffer,int num_bytes,int count,FILE *fp); unsigned fwrite(void *buffer,int num_bytes,int count,FILE *fp);
人民邮电出版社
13.2.3 标准设备文件及 改向 标准设备文件及I/O改向 当进行输入输出操作时,一般输入设备为键盘, 当进行输入输出操作时,一般输入设备为键盘, 输出设备为显示器。这是系统规定的, 输出设备为显示器。这是系统规定的,称这些设备为 标准设备。 标准设备。 标准设备文件的改向操作, 标准设备文件的改向操作,是在执行用户程序文 件时,用改向操作符实现的。有两个改向操作符, 件时,用改向操作符实现的。有两个改向操作符,它 们是: 们是: < 标准输入文件改向; 标准输入文件改向; > 标准输出文件改向。 标准输出文件改向。
人民邮电出版社
2. 文件关闭函数 fclose() 函数fclose()用于关闭用 函数 用于关闭用fopen()打开的文件。 打开的文件。 用于关闭用 打开的文件 函数fclose()的原型为: 函数fclose()的原型为: fclose()的原型为 *fp); int fclose(FILE *fp); 这里fp是调用fopen()时 它返回的文件指针。 这里fp是调用fopen()时,它返回的文件指针。 fp是调用fopen()
人民邮电出版社
13.2.2 格式化的控制台 格式化的控制台I/O 除了前面所介绍的简单控制台I/O函数以外,C 除了前面所介绍的简单控制台 函数以外,C 函数以外 标准函数库中还有两个格式化输入输出函数: 标准函数库中还有两个格式化输入输出函数: printf()和scanf()。 printf()和scanf()。
人民邮电出版社
13.3.3 文件的读和写 1. 函数fgetc()和fputc(函数 函数 和 函数getc()和putc()) 和 函数 函数fgetc() 函数 此函数的功能是,从指定文件读入一个字符。 此函数的功能是,从指定文件读入一个字符。它的 原形为: 原形为: int getc(File *fp); fp为文件指针。 为文件指针。 为文件指针
人民邮电出版社
2. 函数 feof()、ferror()和rewind() 的应用 、 和 (1) 函数 feof() 为了能同时适用于文本文件和二进制文件, 为了能同时适用于文本文件和二进制文件,可采用 二进制模式打开文件。 二进制模式打开文件。 (2) 函数 ferror() ferror()函数可用来确定文件操作是否出现了错误。 函数可用来确定文件操作是否出现了错误。 函数可用来确定文件操作是否出现了错误 (3) 函数 rewind() rewind()函数用于将其参数所指示的文件指针,定 函数用于将其参数所指示的文件指针, 函数用于将其参数所指示的文件指针 位到文件的开头。 位到文件的开头。
人民邮电出版社
13.2 控制台 控制台I/O
13.2.1 简单的控制台 函数 简单的控制台I/O函数 1. 读写字符 表中读写字符的四个函数的原型如下: 表中读写字符的四个函数的原型如下: int getche(void); int puthar(int); int getchar(void); int getch(void); 函数getchar()是函数 是函数getche()的一个变体。由于 的一个变体。 函数 是函数 的一个变体 它要求输入回车, 它要求输入回车,就有可能在函数返回之后留下字 符在输入流中。 符在输入流中。
人民邮电出版社
13.1.3 缓冲文件系统和非缓冲文件系统 C语言支持两种文件系统:缓冲文件系统和非 语言支持两种文件系统: 语言支持两种文件系统 缓冲文件系统。 缓冲文件系统。 所谓缓冲文件系统(buffered file system) 是指 所谓缓冲文件系统 在进行I/O操作时 操作时, 在进行 操作时,系统自动为每个打开的文件开 辟一个内存缓冲区。 辟一个内存缓冲区。 所谓非缓冲文件系统(unbuffered file system) 所谓非缓冲文件系统 是指系统不自动开辟内存缓冲区, 是指系统不自动开辟内存缓冲区,而是由程序自 己为每个文件设定缓冲区。 己为每个文件设定缓冲区。
人民邮电出版社
13.1.2 流的概念 ANSI C的文件系统适用于多种设备,如终端、磁 的文件系统适用于多种设备, 的文件系统适用于多种设备 如终端、 盘和磁带等设备。 盘和磁带等设备。 根据文件存储形式的不同,有两种类型的流: 根据文件存储形式的不同,有两种类型的流:文 本流和二进制流。 本流和二进制流。 1. 文本流 文本流是一个ASCII码字符序列。 文本流是一个ASCII码字符序列。根据具体环境的 ASCII码字符序列 需要,可能会有一定的字符要进行转换。 需要,可能会有一定的字符要进行转换。 2. 二进制流 二进制流是一组字节序列。 二进制流是一组字节序列。它与设备之间传递的 数据存在一一对应的关系,即没有任何字符的转换。 数据存在一一对应的关系,即没有任何字符的转换。
人民邮电出版社
第十三章 磁盘文件操作 (I/O系统)
人民邮电出版社
13.1 文件概述 13.2 控制台I/O 控制台 13.3 ANSI 文件 系统 文件I/O系统
人民邮电出版社
13.1 文件概述
13.1.1 C文件的概念 文件的概念 文件(file)是计算机技术中的一个重要概念。文 是计算机技术中的一个重要概念。 文件 是计算机技术中的一个重要概念 件一词我们多次使用。 件一词我们多次使用。 从操作系统的角度, 从操作系统的角度,与主机相连的输入输出设 也看做是文件。 备,也看做是文件。
人民邮电出版社
2. 读写字符串 用于控制台读写字符串的函数为gets()和puts()。 用于控制台读写字符串的函数为 和 。 它们的原型如下: 它们的原型如下: char *gets(char *); int puts(char *); 并且都在头文件stdio.h中说明。 中说明。 并且都在头文件 中说明 gets()函数从键盘读入一个字符串,放到指针参数 函数从键盘读入一个字符串, 函数从键盘读入一个字符串 指定的地址中。 指定的地址中。 puts()函数的功能是在屏幕上显示一字符串,后跟 函数的功能是在屏幕上显示一字符串, 函数的功能是在屏幕上显示一字符串 一个新行符。 一个新行符。
人民邮电出版社
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, ...);
人民邮电出版社
1. 文件打开函数 文件打开函数fopen() 打开文件是通过函数fopen()实现的。此函数 实现的。 打开文件是通过函数 实现的 要完成下列两个功能: 要完成下列两个功能: 第一, 第一,打开一个流并把它同一个需要打开的 文件联系起来; 文件联系起来; 第二,返回该文件的文件指针。 第二,返回该文件的文件指针。 fopen()函数的原型如下: 函数的原型如下: 函数的原型如下 FILE *fopen(char *filename, char *mode);
人民邮电出版社
13.3.4 文件的定位与文件的随机存取 1. 函数 函数rewind() 函数的原型如下: 函数的原型如下: void rewind(FILE *fp) 2. 函数 函数fseek() 函数的原型如下: 函数的原型如下: int fseek(FILE *fp,long number_bytes,int origin);
人民邮电出版社
13.3 ANSI 文件 系统 文件I/O系统
ANSI 文件 文件I/O 系统,也称为缓冲文件输入输 系统, 出系统。它由一些相互关联的函数组成。 出系统。它由一些相互关联的函数组成。
人民邮电出版社
13.3.1 文件结构类型和文件指针 首先引入一个新的数据类型, 首先引入一个新的数据类型,即文件结构 类型。 类型。 文件I/O系统中 系统中, 在ANSI 文件 系统中,每个被使用的文 都在内存开辟一个区, 件,都在内存开辟一个区,用于存放文件的相 关信息,如文件名、文件状态、 关信息,如文件名、文件状态、文件缓冲区位 置以及当前的读写位置等。 置以及当前的读写位置等。 指向FILE结构的指针称为文件指针。文件 结构的指针称为文件指针。 指向 结构的指针称为文件指针 指针变量定义的一般形式为: 指针变量定义的一般形式为: FILE *文件指针名; 文件指针名; 文件指针名
人民邮电出版社
模式打开的文件, 用“r”模式打开的文件,只能用于向计算机输入 模式打开的文件 数据(读文件 不能向该文件输出数据(写文件 读文件), 写文件)。 数据 读文件 ,不能向该文件输出数据 写文件 。此 模式要求所要打开的文件必须是已经存在, 模式要求所要打开的文件必须是已经存在,否则在打 开时出错。 开时出错。 用“w”模式打开的文件只能用于向文件写数据 模式打开的文件只能用于向文件写数据 不能用来向计算机输入数据。 ,不能用来向计算机输入数据。 模式打开的文件, 用“a”模式打开的文件,可以向文件的末尾添加 模式打开的文件 数据。 数据。 打开的文件, 用“r+”、“w+”和“a+”打开的文件,既可以用 、 和 打开的文件 作写也可以用作读。 作写也可以用作读。
相关主题