C语言程序设计教案 文件程序设计 内容 主要1.文件基本概念 内容2.文件基本操作方式 3.文件基本工作模式 4.文件的打开与关闭 5.文件的读写操作 6.文件的定位 重点1.文件基本工作模式 2.文件的打开与关闭 3.文件的概念及工作思想 难点文件的工作思想 C语言程序设计对文件的操作是非常重要的操作,也是非常必 问题 提出要的操作,是对数据和程序长期保存和对标准输入和输出设备的补 、文件的概念 文件是一组存储在外部介质上数据的集合。而组成文件的这些/重点把握 数据可以是一批二进制数、一组字符或一个程序,包括磁盘文件和概念 设备文件。 1.文件的分类 按照不同的标准可以把文件分为不同的类型 (1)按文件的结构形式分类 注意:不同 0三进制文件:二进制文件是把内存中的二进制数据按其在内|的分类标 存中的存储形式原样输出到磁盘上存放 e文本文件:全部由字符组成的具有行列结构的文件,由于文的分类形 件的每个元素都是用AsC码来表示的(又称NI码文件式 (2)按照文件的读写方式分类 o顺序文件:它把数据看成作为一连串的字符或字节数据,当 从顺序文件中读取数据时,先输入的先输出,按照顺序输入输出。 e随机文件:在该文件中,可以对该文件的某一元素进行读写, 不需要从文件开头开始 3)按照文件存储的外部设备分类 0设备文件:在C语言中,把外部设备都作为文件对待,称为 设备文件。 e磁盘文件:通过磁盘来存储某些数据,这样的文件称为磁盘 文件 (4)按照系统对文件的处理方法分类 o缓冲文件:即系统在内存中开辟一个缓冲区,当对磁盘文 操作时,首先经过缓冲区,才能达到目的。 e非缓冲文件:开辟缓冲区的工作由程序来完成,不是由系统 来完成
C 语言程序设计教案 文件程序设计 内容 说明 主要 内容 重点 难点 问题 提出 1.文件基本概念 2.文件基本操作方式 3.文件基本工作模式 4.文件的打开与关闭 5.文件的读写操作 6.文件的定位 重点把握 概念 注意:不同 的分类标 准有不同 的分类形 式 1.文件基本工作模式 2.文件的打开与关闭 3.文件的概念及工作思想 文件的工作思想 C 语言程序设计对文件的操作是非常重要的操作,也是非常必 要的操作,是对数据和程序长期保存和对标准输入和输出设备的补 充。 一、文件的概念 文件是一组存储在外部介质上数据的集合。而组成文件的这些 数据可以是一批二进制数、一组字符或一个程序。包括磁盘文件和 设备文件。 1.文件的分类 按照不同的标准可以把文件分为不同的类型。 (1)按文件的结构形式分类 二进制文件:二进制文件是把内存中的二进制数据按其在内 存中的存储形式原样输出到磁盘上存放。 文本文件:全部由字符组成的具有行列结构的文件,由于文 件的每个元素都是用 ASCII 码来表示的(又称 ASCII 码文件)。 (2)按照文件的读写方式分类 顺序文件:它把数据看成作为一连串的字符或字节数据,当 从顺序文件中读取数据时,先输入的先输出,按照顺序输入输出。 随机文件:在该文件中,可以对该文件的某一元素进行读写, 不需要从文件开头开始。 (3)按照文件存储的外部设备分类 设备文件:在 C 语言中,把外部设备都作为文件对待,称为 设备文件。 磁盘文件:通过磁盘来存储某些数据,这样的文件称为磁盘 文件。 (4)按照系统对文件的处理方法分类 缓冲文件:即系统在内存中开辟一个缓冲区,当对磁盘文件 操作时,首先经过缓冲区,才能达到目的。 非缓冲文件:开辟缓冲区的工作由程序来完成,不是由系统 来完成
C语言程序设计教案 2.文件类型指针 在C语言中,无论是一般磁盘文件还是设备文件,都可以通过文件指针 文件结构体类型的数据集合进行输入输出操作,文件结构体是由系是操作文 统定义的,取名为FILE,其意义包含在 stdio. h文件中。主要信件的必不 息有 可少的工 ①文件名 ②文件状态 ③文件当前的读/写位置 ④文件缓冲区的位置 ⑤文件从当前位置开始在缓冲区中的数据个数 对文件的处理步骤一般为: 打开文件文件的读/写关闭文件 文件的打开与关闭 1.文件的打开 对打开模 文件打开函数— fopen o 式要重点 FILE fp 掌握 fp= fopen( filename, mode); 【说明】: ①fp为文件指针,指向文件 filename,即可为字符串变 量,也可为字符串常量; ②mode为文件打开的方式,为下列之中: 以只读方式打开一个已有文本文件 以只写方式建立一个文本文件 以添加方式打开一个文本文件,在文件末尾 添加,若文件不存在,则建立一个新的文件后在添加 以只读方式打开一个二进制文件 以只写方式打开一个二进制文件 以添加方式打开一个二进制文件 以读写方式打开一个已有文本文件 以读写方式建立一个新的文本文件 以修改方式打开一个文本文件,在文件末尾 添加修改,若文件不存在,则建立一个新的文件后在添加 以读写方式打开一个已有的二进制文件 以读写方式建立一个新的二进制文件 “ab+”以修改方式打开一个二进制文件 2.文件关闭 文件关闭函数一 fclose o 强调为什 fclose( fp) 么要实行 关闭操作 【说明】:fp为已定义过的文件指针
C 语言程序设计教案 2.文件类型指针 在 C 语言中,无论是一般磁盘文件还是设备文件,都可以通过 文件结构体类型的数据集合进行输入输出操作,文件结构体是由系 统定义的,取名为 FILE,其意义包含在 stdio.h 文件中。主要信 息有: 文件名 文件状态 文件当前的读/写位置 文件缓冲区的位置 文件从当前位置开始在缓冲区中的数据个数 对文件的处理步骤一般为: 二、文件的打开与关闭 1.文件的打开 文件打开函数—fopen() 【说明】: fp 为文件指针,指向文件 filename,即可为字符串变 量,也可为字符串常量; mode 为文件打开的方式,为下列之中: “r” 以只读方式打开一个已有文本文件 “w” 以只写方式建立一个文本文件 “a” 以添加方式打开一个文本文件,在文件末尾 添加,若文件不存在,则建立一个新的文件后在添加。 “rb” 以只读方式打开一个二进制文件 “wb” 以只写方式打开一个二进制文件 “ab” 以添加方式打开一个二进制文件 “r+” 以读写方式打开一个已有文本文件 “w+” 以读写方式建立一个新的文本文件 “a+” 以修改方式打开一个文本文件,在文件末尾 添加修改,若文件不存在,则建立一个新的文件后在添加。 “rb+” 以读写方式打开一个已有的二进制文件 “wb+” 以读写方式建立一个新的二进制文件 “ab+” 以修改方式打开一个二进制文件 2.文件关闭 文件关闭函数—fclose() fclose ( fp ) ; 【说明】:fp 为已定义过的文件指针。 文件指针 是操作文 件的必不 可少的工 具 对打开模 式要重点 掌握 强调为什 么要实行 关闭操作 打开文件——文件的读/写——关闭文件 FILE * fp ; fp= fopen ( filename,mode ) ;
C语言程序设计教案 【例】 include 通过程序 思想 ain 理解概念, 重要, 对程序思 想要重点 简单 fp=fopen ("p359 c", r") =fgetc(fp) while(c!=EOF putchar(c) c=fgetc(fp) 三、文件的读写操作(复习前4个已学过的函数 1.字符输入函数- getchar0 复习 【功能】从标准输入设备逐一输入字符,直到遇到(Ctr1-Z或文 件结束符)为止,该函数无参数,返回值为整型。 2.字符输出函数— putchar0 复习 【功能】在标准输出设备逐一输出字符,直到遇到(Ctr1-Z或文 件结束符)为止,该函数有参数(参数为整型)。 【例 include lrscro while((cl=getchar ()!=EOF putchar(c2) if(c1>='a'&&cl<=’z’) putchar(c2) 3.字符串输入函数 复习 【功能】完成从标准输入设备输入一字符串,以回车作为结束符, 该函数的参数为字符型指针,代表一个地址,正常操作的返回值为 内存中的首地址,如果出错,返回值NULL 4.字符串输出函数—puts(s) 复习 【功能】完成将标准输入设备输入的字符串从标准输出设备输出, 并将结束符转换成回车,正常操作的返回值为0,如果出错,返回 值EOF(-1)
C 语言程序设计教案 思 想 重要, 方 法 简单 【例】 # include main() { FILE *fp; int c; fp=fopen("p359.c","r"); c=fgetc(fp); while(c!=EOF) { putchar(c); c=fgetc(fp); } } 三、文件的读写操作(复习前 4 个已学过的函数) 1.字符输入函数——getchar() 【功能】从标准输入设备逐一输入字符,直到遇到(Ctrl—Z 或文 件结束符)为止,该函数无参数,返回值为整型。 2.字符输出函数——putchar() 【功能】在标准输出设备逐一输出字符,直到遇到(Ctrl—Z 或文 件结束符)为止,该函数有参数(参数为整型)。 【例】 # include main() { int c1,c2; clrscr(); while((c1=getchar())!=EOF) { if (c1>='A'&&c1='a'&&c1<='z') { c2=c1-32; putchar(c2); } } } 3.字符串输入函数——gets(s) 【功能】完成从标准输入设备输入一字符串,以回车作为结束符, 该函数的参数为字符型指针,代表一个地址,正常操作的返回值为 内存中的首地址,如果出错,返回值 NULL。 4.字符串输出函数——puts(s) 【功能】完成将标准输入设备输入的字符串从标准输出设备输出, 并将结束符转换成回车,正常操作的返回值为 0,如果出错,返回 值 EOF(-1)。 通过程序 理解概念, 对程序思 想要重点 掌握 复习 复习 复习 复习
C语言程序设计教案 【例】 #include main FILE *fp char string[50] fp=fopen("file2.c","r") fgets(string, 10, fp) fclose(fp) puts(string) 5.字符输入函数一 fgetc0 通过 实例 FILE * fp 掌握 C=fgetc(fp); 【功能】该函数将文件中的一个字符读取并将其转换成一个字节的 代码值,当读到文件末尾时或读取错误时,函数值返回一个文件结 束标志EOF(-1)。 【例 maino FILE * fp fp=fopen("filel.c",r") a=fgetc(fp) putchar(a) Close(Ip 6.字符输出函数一 fputc0 fputc(c, fp) 【功能】该函数将一个字节的代码值c写入fp指向的文件中,当 输出正常时,函数值返回该函数的返回值,如果失败则返回文件结 束标志EOF(-1)。 【例】# include main I FILE *fp char ch, filename [10] scanf(%s", filename)
C 语言程序设计教案 通 过 实 例 掌握 【例】 #include main() { FILE *fp; char string[50]; fp=fopen("file2.c","r"); fgets(string,10,fp); fclose(fp); puts(string); } 5.字符输入函数—fgetc() 【功能】该函数将文件中的一个字符读取并将其转换成一个字节的 代码值,当读到文件末尾时或读取错误时,函数值返回一个文件结 束标志 EOF(-1)。 【例】 #include main() { FILE *fp; char a; fp=fopen("file1.c","r"); a=fgetc(fp); putchar(a); fclose(fp); } 6.字符输出函数—fputc() fputc(c,fp); 【功能】该函数将一个字节的代码值 c 写入 fp 指向的文件中,当 输出正常时,函数值返回该函数的返回值,如果失败则返回文件结 束标志 EOF(-1)。 【例】 #include main() { FILE *fp; char ch,filename[10]; scanf("%s",filename); FILE * fp; c=fgetc (fp);
C语言程序设计教案 if((fp=fopen(filename, "w"))=NULL print cannot open file\n") putchar(ch) har(; fclose(fp): F 7.字符串输入函数— fgets0 fgets(str, n, fp) 【功能】该函数是从fp指定的文件中读取一个字符串,并且该函 数只读取n1个字符,因为还要加上一个“\0’字符,该函数遇下 列之一结束 ①已经读取n-1个字符 ②回车符 ③文件末尾 8.字符串输出函数— fputs0 fputs(str, fp) 【功能】将函数完成的是将由str指定的字符串写入fp指向的文 件中。字符串末尾的“0’自动舍去 9.格式化输入函数 fscanf fscanf (fp, format, &argl, &arg2,.&argn) 【说明】①fp为文件指针。 ② format为输入格式,即%d,‰%x,%,%,%等 ③&arg1,&arg2,…&argn为输出项列表,输出为 ASCII 码值 10.格式化输出函数— fprintf0 fprintf(fp, format, argl, arg2,.argn): 【说明】①fp为文件类型指针。 ②该函数其他的参数和 printf0一样。 11.数据块写函数— fwrite(( fwrite(buffer, size, count, fp)
C 语言程序设计教案 if((fp=fopen(filename,"w"))==NULL) { printf("cannot open file\n"); exit(0); } ch=getchar(); while(ch!='#') { fputc(ch,fp); putchar(ch); ch=getchar(); } fclose(fp); } 7.字符串输入函数——fgets() 【功能】该函数是从 fp 指定的文件中读取一个字符串,并且该函 数只读取 n-1 个字符,因为还要加上一个‘\0’字符,该函数遇下 列之一结束: 已经读取 n-1 个字符 回车符 文件末尾 8.字符串输出函数——fputs() fputs(str,fp); 【功能】将函数完成的是将由 str 指定的字符串写入 fp 指向的文 件中。字符串末尾的‘\0’自动舍去。 9.格式化输入函数——fscanf () fscanf(fp,format,&arg1,&arg2,…&argn); 【说明】 fp 为文件指针。 format 为输入格式,即%d,%x,%f,%c,%s 等。 &arg1,&arg2,…&argn 为输出项列表,输出为 ASCII 码值。 10.格式化输出函数——fprintf() fprintf(fp,format,arg1,arg2,…argn); 【说明】 fp 为文件类型指针。 该函数其他的参数和 printf()一样。 11.数据块写函数——fwrite( ) fwrite(buffer,size,count,fp); fgets(str,n,fp);
C语言程序设计教案 【说明】① buffer-—(是一个指针)读入或输出数据的地址 ②size-—要读写的字节数。 ③ count—一要读写多少个size字节的数据项。 ④fp-—文件型指针。 12.数据块读函数— -fread( fread (buffer, size, count, fp) 【说明】① buffer是内存块的首地址,从文件中读入的数据存入这 个内存块中。 ②size表示每个数据块的字节数。 ③ count为读出数据块的个数 f为文件型指针 四、文件的定位 文件中有一个位置指针,指向当前读写的位置,如果顺序读写 个文件,每次读写一个字符,则读写完一个字符后,该位置指针 自动移动指向下一个字符位置 1. rewind函数 该函数的功能是:把文件定位指针重新返回到文件开头。此函 数没有返回值 2.fte11函数 该函数的功能是:返回文件定位指针的当前位置,即文件头的 移量(长整型),文件头的位置定为0。函数的参数是文件的指针。 如果 ftell函数返回值为-1L,表示出错 3. fseek函数 用 fseek函数可以实现改变文件的位置指针 五、小结 通过本讲学习,使得学生掌握文件的基本概念及文件操作的思 想,对文件分类、工作模式都有了系统的介绍,并且对文件的基本 操作也有了系统的阐述,重点介绍了文件的基本操作之文件的打开 和文件的关闭、对文件的读写操作
C 语言程序设计教案 【说明】buffer——(是一个指针)读入或输出数据的地址。 size——要读写的字节数。 count——要读写多少个 size 字节的数据项。 fp——文件型指针。 12.数据块读函数——fread( ) fread(buffer,size,count ,fp); 【说明】buffer 是内存块的首地址,从文件中读入的数据存入这 个内存块中。 size 表示每个数据块的字节数。 count 为读出数据块的个数。 fp 为文件型指针。 四、文件的定位 文件中有一个位置指针,指向当前读写的位置,如果顺序读写 一个文件,每次读写一个字符,则读写完一个字符后,该位置指针 自动移动指向下一个字符位置。 ⒈ rewind 函数 该函数的功能是:把文件定位指针重新返回到文件开头。此函 数没有返回值。 ⒉ ftell 函数 该函数的功能是:返回文件定位指针的当前位置,即文件头的 位移量(长整型),文件头的位置定为 0。函数的参数是文件的指针。 如果 ftell 函数返回值为-1L,表示出错。 ⒊ fseek 函数 用 fseek 函数可以实现改变文件的位置指针。 五、小结 通过本讲学习,使得学生掌握文件的基本概念及文件操作的思 想,对文件分类、工作模式都有了系统的介绍,并且对文件的基本 操作也有了系统的阐述,重点介绍了文件的基本操作之文件的打开 和文件的关闭、对文件的读写操作