欢迎来到天天文库
浏览记录
ID:53619895
大小:216.00 KB
页数:27页
时间:2020-04-22
《C程序设计第十一章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ProgramminginCLanguage第十一章文件C程序设计教学重点文件及文件类型指针概念文件的操作:打开、读写、关闭常用的文件系统函数C程序设计第十一章文件11.1文件概述文件的定义存储在外部介质上的数据的集合。文件名称文件名[.扩展名]在C程序中的数据文件按存储格式分:以字符形式存储的文件称文本文件或ASCII码文件以二进制形式存放的文件称二进制文件数据文件的存储格式例:数据12345678按二进制数存放:4个字节按字符存放:8个字节01011011110011010001010100000111'1''2
2、''3''4''5''6''7''8'二进制文件文本文件0011000100110010001100110011010000110101001101100011011100111000495051525354555611.1文件概述文本文件与二进制文件的区别文本文件阅读方便,直观,便于对字符逐个输入/出,但占存储空间多,花费转换时间;二进制文件由于一个字节并不对应一个字符,不能直接显示文件内容,但节省存储空间,不需转换。程序数据区内存储器数据流向缓冲区外存储器文件标准设备文件键盘显示器输出输入写文件读文件11.1文件
3、概述FILE文件类型在stdio.h中定义了一个FILE结构体类型;该结构体中存放有关打开文件的信息(文件名、文件状态、数据缓冲区位置、文件读写的当前位置等)。文件类型指针文件的操作,都必须通过指向文件类型的指针变量来进行;即用户必须定义一个文件类型的指针。文件类型指针的定义FILE*文件结构体指针变量名;11.1文件概述文件的操作打开文件:建立文件缓冲区、获取指向FILE类型结构体变量的指针。读写文件:通过文件类型指针,调用读写函数对文件进行读写操作。关闭文件:释放文件缓冲区,释放文件指针所指的FILE类型结构体变
4、量。打开文件fopen函数函数原型FILE*fopen(char*filename,char*mode)功能:打开名为filename的文件,函数的返回值为指向该文件的FILE结构体类型变量的首地址,打开文件失败则返回NULL。mode:打开文件的使用方式,用字符串表示,参见教材P.240表11.1例:以只读方式打开文本文件d:vcabc.txt。FILE*fp;fp=fopen("d:\vc\abc.txt","r");通常需要检查文件打开是否成功,以下是文件打开常用的程序段:if((fp=fopen("d
5、:\vc\abc.txt","r"))==NULL){printf("Openfileerror!");exit(0);}11.2文件的打开和关闭函数exit(0)的功能:终止程序头文件stdlib.h11.2文件的打开和关闭关闭文件函数原型:intfclose(File*fp)功能:确保最后输出到文件缓冲区中的内容(无论是否已满),立即写入到对应的外存文件中;释放fp所指向的文件结构体和文件缓冲区。函数返回非0表示出错,返回0则表示文件已被正常关闭。例:FILE*fp;//打开当前目录下的文本文件abc.t
6、xtfp=fopen("abc.txt","r");……fclose(fp);11.3文件的读写文件结构体类型中,有一个“读写位置指针”,指向当前读写的位置。当打开一个文件时,读写位置指针指向文件中所有数据项之前。每进行一次文件的读写,读写位置指针都将自动向后移动,移至下一个读写位置。11.3文件的读写C提供不同的读写文件的函数:文本文件的读写fgetcfputc读写一个字符fgetsfputs读写一个字符串fscanffprintf格式化读写二进制文件的读写freadfwrite读写一个“内存块”11.3文件的读写
7、—fgetc函数字符输入函数fgetc函数原型:intfgetc(FILE*fp)功能:从fp所指的文本文件的当前读写位置读入一个字符。函数返回该字符的ASCII值,若到文件结束标志则返回EOF(-1)。从文件读入一个字符后,文件读写位置向后移动一个字节。常用方法:c=fgetc(fp);//c为字符型变量例:FILE*fp;charch;fp=fopen("d:\vc\abc.txt","r");ch=fgetc(fp);putchar(ch);//从文件当前读写位置读取一个字符,输出到显示器。11.3文件的读
8、写对于文本文件,判断文件是否结束,可以采用以下方法:while((ch=fgetc(fp))!=EOF){……//读数据,处理}在stdio.h中定义EOF为-1例:FILE*fp;charch;fp=fopen("d:\vc\abc.txt","r");while((ch=fgetc(fp))!=EOF)putchar(ch);11.3文
此文档下载收益归作者所有