欢迎来到天天文库
浏览记录
ID:48934702
大小:150.50 KB
页数:30页
时间:2020-01-28
《C语言文件续及链表.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文件处理方法缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区上节内容回顾typedefstruct{shortlevel;/*缓冲区“满”或“空”的程度*/;unsignedflags;/*文件状态标志*/charfd;/*文件描述符*/unsignedcharhold;/*如无缓冲区不读取字符*/shortbsize;/*缓冲区的大小*/unsignedchar*buffer;/*数据缓冲区的位置*/unsignedchar*curp;/*指针当前的指向*/unsignedistemp
2、;/*临时文件,指示器*/shorttoken;/*用于有效性检查*/}FILE;文件结构体FILE打开文件fopen函数原型:FILE*fopen(char*name,char*mode)文件关闭fclose函数原型:intfclose(FILE*fp)“r+/rb+”(读写)“a/ab”(追加)“w/wb”(只写)“r/rb”(只读)“w+/wb+”(读写)“ab+”(读写)为输入打开一个文本/二进制文件为输出打开一个文本/二进制文件为读/写打开一个文本/二进制文件为读/写建立一个文本/二进制文件为读/写打开二进制文件向文本/二进制文件尾追加数据文件使用方式含义字
3、符I/O:fputc与fgetcfputc函数原型:intfputc(intc,FILE*fp)功能:把一字节代码c写入fp指向的文件中返值:正常,返回c;出错,为EOFfgetc函数原型:intfgetc(FILE*fp)功能:从fp指向的文件中读取一字节代码返值:正常,返回读到的代码值;读到文件尾或出错,为EOF文件I/O与终端I/O#defineputc(ch,fp)fputc(ch,fp)#definegetc(fp)fgetc(fp)#defineputchar(c)fputc(c,stdout)#definegetchar()fgetc(stdin)feo
4、f函数原型:intfeof(FILE*fp)功能:判断文件是否结束返值:文件结束,返回真(非0);文件未结束,返回0数据块I/O:fread与fwritesize_tfread(void*buffer,size_tsize,size_tcount,FILE*fp)size_tfwrite(void*buffer,size_tsize,size_tcount,FILE*fp)功能:读/写数据块返值:成功,返回读/写的块数;出错或文件尾,返回0说明:typedefunsignedsize_t;buffer:指向要输入/输出数据块的首地址的指针size:每个要读/写的数据块
5、的大小(字节数)count:要读/写的数据块的个数fp:要读/写的文件指针fread与fwrite一般用于二进制文件的输入/输出例从键盘输入4个学生数据,把他们转存到磁盘文件中去#include#defineSIZE4structstudent_type{charname[10];intnum;intage;charaddr[15];}stud[SIZE];main(){inti;for(i=0;i6、r);save();display();}voidsave(){FILE*fp;inti;if((fp=fopen("d:\jzit\dqx\stu.dat","wb"))==NULL){printf("cannotopenfile");return;}for(i=0;i7、:\jzit\dqx\stu.dat","rb"))==NULL){printf("cannotopenfile");return;}for(i=0;i
6、r);save();display();}voidsave(){FILE*fp;inti;if((fp=fopen("d:\jzit\dqx\stu.dat","wb"))==NULL){printf("cannotopenfile");return;}for(i=0;i7、:\jzit\dqx\stu.dat","rb"))==NULL){printf("cannotopenfile");return;}for(i=0;i
7、:\jzit\dqx\stu.dat","rb"))==NULL){printf("cannotopenfile");return;}for(i=0;i
此文档下载收益归作者所有