1 / 15

第七章 文件

第七章 文件. 教学目标. 要求掌握文件的概念、分类、文件的处理过程,文件的打开和关闭,文件的顺序读写,文件的定位与随机读写和文件状态检查函数的使用等。 重点:文件的打开和关闭。 难点:文件的处理过程。. 授课内容. 7.1 文件概述 7.2 文件的打开和关闭 7.3 文件的顺序读写 7.4 文件的定位与随机读写 7.5 文件状态检查函数 7.6 文件输入 / 输出小结. 7.1 文件概述 7.1.1 文件的概念 一般来说,文件是存储在外部介质上数据的集合体 . 7.1.2 文件的分类

hide
Download Presentation

第七章 文件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 文件

  2. 教学目标 • 要求掌握文件的概念、分类、文件的处理过程,文件的打开和关闭,文件的顺序读写,文件的定位与随机读写和文件状态检查函数的使用等。 • 重点:文件的打开和关闭。 • 难点:文件的处理过程。

  3. 授课内容 • 7.1 文件概述 • 7.2 文件的打开和关闭 • 7.3 文件的顺序读写 • 7.4 文件的定位与随机读写 • 7.5 文件状态检查函数 • 7.6 文件输入/输出小结

  4. 7.1 文件概述 7.1.1 文件的概念 一般来说,文件是存储在外部介质上数据的集合体. 7.1.2 文件的分类 在C语言中,根据数据的组织形式,文件可分为文本文件和二进制文件两种。

  5. 7.1.2 文件的分类 在C语言中,根据数据的组织形式,文件可分为文本文件和二进制文件两种。 以ASCII码字符形式存储的文件称为文本文件,又叫ASCII文件; 二进制文件是文件的另一种存储形式,它以二进制数据方式存入磁盘. 7.1.3 文件类型指针 FILE类型的声明:

  6. typedef struct { short level; /* 缓冲区“满”或“空”的程度 */ unsigned flags; /* 文件状态标志 */ char fd; /* 文件描述符 */ unsigned char hold; /* 如无缓冲区不读取字符 */ short bsize; /* 缓冲区的大小 */ unsigned char *buffer; /* 数据缓冲区的位置 */ unsigned char *curp; /* 当前活动的指针 */ unsigned istemp; /* 临时文件指示器 */ short token; /* 用于有效性检查 */ }FILE;

  7. 7.1.4 文件的处理过程 C语言中文件的处理过程一般是: 打开文件→读(或写文件)→关闭文件 指向文件结构体变量的指针定义可按如下形式定义: FILE * 文件类型指针名; 例7.1产生100以内的全部偶数,把它们顺序地写到C盘根目录下一个名为even246.dat的文本文件中。 例7.2打开上例刚建立的存放偶数的文件c:\even246.dat,将文件中保存的偶数依次读出,要求按每行10个数的格式显示在屏幕上。

  8. 7.2 文件的打开和关闭 7.2.1文件的打开函数 函数原型:FILE *fopen(char *pname, char *mode) 7.2.2 文件的关闭函数 函数原型:int fclose(FILE *fp) 7.3 文件的顺序读写 7.3.1 文本文件的顺序读写 1.字符输入/输出函数 (1)字符输入函数fgetc()和getc() 函数原型:int fgetc(FILE *fp) int getc(FILE *fp)

  9. (2)字符输出函数fputc()和putc() 函数原型:int fputc(char ch, FILE *fp) int putc(char ch, FILE *fp) 例7.3创建文件。首先键入一个文件名,然后从键盘上输入一些字符,把这些字符逐个写入到那个指定的文本文件中去,直到输入“#”结束。 例7.4复制文件。把一个文本文件的内容全部复制到另一个文本文件中去。

  10. 2.字符串的输入/输出函数 (1)字符串输入函数fgets() 函数原型:char *fgets(char *str, int n, FILE *fp) (2)字符串输出函数fputs() 函数原型:int fputs(char *str, FILE *fp) 函数功能:把str所指定的字符串写入到fp所指定的文件中去,不包括字符串结束标志’\0’。 例7.5将键盘输入的若干行字符写入到一个名为mystring.dat的文件中去,假设每行字符串的长度不超过80。

  11. 3. 格式化输入/输出函数 (1)格式化输入函数fscanf() 函数原型:int fscanf(FILE *fp, “输入格式描述串”, 输入项地址表列) 函数功能:按照“输入格式描述串”所指定的输入格式,从fp指定文件的当前读写位置开始读出数据,然后把它们按输入项地址表列的顺序存入指定的存储单元中。 参数说明: (2)格式化输出函数 函数原型:int fprintf(FILE *fp, “输出格式描述串”, 输出项表列) 函数功能:把输出项表列中的项按照指定的格式输出到fp所指的文件中去。

  12. 例7.6假设学生信息包括学号、三门课的单科成绩和平均分,创建一个名为stu.txt的文本文件,从键盘上输入数据,写格式化数据到磁盘文件。例7.6假设学生信息包括学号、三门课的单科成绩和平均分,创建一个名为stu.txt的文本文件,从键盘上输入数据,写格式化数据到磁盘文件。

  13. 7.3.2 二进制文件的顺序读写 1.数据块输入/输出函数 (1)输入函数fread() 函数原型: int fread(数据类型名 *buffer, unsigned size, unsigned number, FILE *fp) 函数功能:从fp所指定的文件中以二进制形式读取数据块。 (2)输出函数fwrite() 函数原型: int fwrite(数据类型名 *buffer, unsigned size, unsigned number, FILE *fp) 函数功能:将buffer缓冲区中的数据以二进制的形式写入到fp所指定的文件中去。

  14. 例7.9假设学生信息包括学号、三门课的单科成绩和平均分,从键盘上输入数据,创建一个名为stu.bin的二进制数据文件。例7.9假设学生信息包括学号、三门课的单科成绩和平均分,从键盘上输入数据,创建一个名为stu.bin的二进制数据文件。 1.字输入/输出函数 (1)输入函数getw() 函数原型:int getw(FILE *fp) 函数功能:从fp指定的文件中以二进制的形式读取一个字(整数值)。 (2)输出函数putw() 函数原型:int putw(int n, FILE *fp) 函数功能:以二进制形式将一个int型的数据写到fp所指定的文件中去。

  15. 作业 • 第225页题7.1~7.12

More Related