C语言文件续及链表.ppt

C语言文件续及链表.ppt

ID:48934702

大小:150.50 KB

页数:30页

时间:2020-01-28

C语言文件续及链表.ppt_第1页
C语言文件续及链表.ppt_第2页
C语言文件续及链表.ppt_第3页
C语言文件续及链表.ppt_第4页
C语言文件续及链表.ppt_第5页
资源描述:

《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;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;i

7、:\jzit\dqx\stu.dat","rb"))==NULL){printf("cannotopenfile");return;}for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。