- 0
- 0
- 约6.34千字
- 约 53页
- 2019-05-14 发布于广东
- 举报
C语言程序设计—提高篇 例4:数据块(二进制形式)的读写 fread(buffer,size,count,fp) 功能:从指定文件读入count个大小为size的字节数据块,存入buffer所指存储单元。返回所读的数据项个数,如遇文件结束或出错返回0。 fwrite(buffer,size,count,fp) 功能: 从buffer所指存储单元的数据取size ×count个字节送fp所指文件。返回写到fp所指文件中的数据项的个数。 例4:数据块(二进制形式)的读写 fread(buffer,size,count,fp) fwrite(buffer,size,count,fp) 说明: buffer为输入输出在内存中存放的首地址; size为读、写的字节数,即数据块的大小; count为输入输出的数据项的个数; fread()和fwrite()用于二进制文件的输入输出。 #include stdio.h #include process.h #define SIZE 4 struct student { char name[10]; int num,age; char addr[15]; }stud[SIZE]; void save_load() { FILE *fp; int i; if((fp=fopen(stu_list,wb+))==NULL) { printf(cannot open file.\n); exit(0); } for(i=0;iSIZE;i++) { if(fwrite(stud[i],sizeof(struct student),1,fp)!=1) { printf(file write error!\n); exit(0);} } rewind(fp); for(i=0;iSIZE;i++) { if(fread(stud[i],sizeof(struct student),1,fp)!=0) printf(%-10s %4d %4d %-15s\n, stud[i].name,stud[i].num, stud[i].age, stud[i].addr);} } 输入: zhang 1001 19 room_101 li 1002 19 room_102 wang 1003 21 room_103 zhao 1004 21 room_104 输出: zhang 1001 19 room_101 li 1002 19 room_102 wang 1003 21 room_103 zhao 1004 21 room_104 void main() { int i; for(i=0;iSIZE;i++) scanf(%s %d %d %s, stud[i].name, stud[i].num,stud[i].age, stud[i].addr); save_load(); } 回顾:fgetc( ), fputc( ) fgets( ), fputs( ) fscanf( ), fprintf( ) 这些函数都是按顺序读/写文件 3.5 文件的随机读写 解决的办法:把文件指针移到指定的位置即可。 关键步骤:文件的定位。 3.5 文件的随机读写 问题:要求打开文件后,对指定位置上的数据进行读写操作,减少一些不必要的中间环节。 * ——提高篇 第3章 文件 内容概述 文件分类 缓冲文件系统 文件的指针 文件打开与关闭 文件应用 教学目标 1.概述文件的概念,非缓冲文件系统和缓冲文件系统; 2.描述文件类型指针的概念及定义方法; 3.正确进行文件的打开和关闭操作,及对打开和关闭操作的错误处理; 4.正确使用文件的读写操作,包括基于字节,数据项等的读写操作; 5.牢记文件的随机读写方法; 6.正确使用文件访问的错误检测及处理方法; 文件是指存储在外部介质上,且按文件名访问的一组信息序列 ①文本文件(字符代码文件或ASCII代码文件) 由一个一个字符组成,每一个字符用一个ASCII代码表示,如123.45以ASCII代码形式存储到磁盘需要6个字节。 特点:可通过显示器或打印机显示,即可读,比较直观。 3.1 文件分类 ②非文本文件(二进制文件) 是指以数据在内存中的存储形式原样输出存储到磁盘上的文件。如123.45在内存中以浮点数形式存储占4个字节,不管一个实数多大都占4个字节。 特点:节省存储空间,输入输出无需转换,速度快,不便阅读。 说明: ①一个C文件是一个字节流或二进制流,它把数据看作是一连串的字符序列
您可能关注的文档
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(4).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(5).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(6).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(7).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(8).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(9).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(10).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(1).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(2).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(3).ppt
原创力文档

文档评论(0)