C语言程序设计-学生信息的读取与保存PPT学习课件_第1页
C语言程序设计-学生信息的读取与保存PPT学习课件_第2页
C语言程序设计-学生信息的读取与保存PPT学习课件_第3页
C语言程序设计-学生信息的读取与保存PPT学习课件_第4页
C语言程序设计-学生信息的读取与保存PPT学习课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,项目十学生信息的读取与保存-文件,2,【项目要求】,从文件a.txt读取某班的期末考试成绩,按总分排序后写入另外一个文件b.txt。,在上一章实现的项目中发现,每次运行程序都要输入大量的数据,如果用我们以前学过的输入的方法就很不方便,最常用的方法就是预先将这些数据写到一个文件里,再将这个文件存放在磁盘上,需要时再将数据从该文件中读取。为实现本项目需要经过打开文件、从文件进行数据的读/写、关闭文件指针三步。,【项目分析】,3,问题情境及实现,#include#defineN100typedefstructstudentcharnum11;charname9;intscore3;floatavr;STU;voidfsort(STUs,intn)/对结构体数组中的n个数据进行简单选择排序inti,j,k;STUt;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(sk.avrsj.avr)k=j;if(i!=k)t=si;si=sk;sk=t;,4,问题情境及实现,voidmain()FILE*fp1,*fp2;STUsN;inti,n,j,sum;if(fp1=fopen(f:cresource10w2.txt,r)=NULL)printf(找不到该文件n);/*如果打不开文件则给出相应的提示*/getch();exit(0);i=0;while(!feof(fp1)/*从文件中读取有关数据,一直读到文件末尾*/fscanf(fp1,%s%s,si.num,);sum=0;for(j=0;j3;j+)fscanf(fp1,%d,5,问题情境及实现,fclose(fp1);/*关闭文件*/n=i;for(i=0;in;i+)printf(n第%d个学生的信息:%s%s,i+1,si.num,);for(j=0;j3;j+)printf(%d,si.scorej);fsort(s,n);fp2=fopen(f:cresource10w2_2.txt,w);/*打开文件进行保存数据*/for(i=0;i关闭文件,16,2文件的打开与关闭(1),2.1打开文件,函数原型:FILE*fopen(char*name,char*mode),stdio.h,返回值:正常打开,返回指向文件结构体的指针;打开失败,为NULL,P295页表格,17,2文件的打开与关闭(2),2.1打开文件,课堂练习:打开当前文件夹下的namelist.txt文件,打开方式为追加打开d盘test文件夹下的namelist.txt文件,如果该文件不存在,就创建该文件,然后增加文件内容,课堂练习编写,18,2文件的打开与关闭(3),2.2关闭文件,函数原型:intfclose(FILE*fp),文件打开时返回的文件类型指针,返回值:正常关闭为0;出错时,非0,课堂练习:关闭前面课堂练习中打开的文件,返回主菜单,19,3文件的读写(1),3.1文件的顺序读写文件字符输入/输出函数,函数原型:intfputc(intc,FILE*fp)功能:把一字节代码c写入fp指向的文件中返值:正常,返回c;出错,为EOF,函数原型:intfgetc(FILE*fp)功能:从fp指向的文件中读取一字节代码返值:正常,返回读到的代码值;读到文件尾(EOF)或出错(NULL)为止,20,3文件的读写(1),3.1文件的顺序读写文件字符输入/输出函数,例1:从键盘输入若干字符,逐个将它们写入文件”file.txt”中,直到输入一个”*”为止。,例1编写,考虑如何编程完成将一个磁盘文件中的内容复制到另外一个磁盘文件?,21,3文件的读写(2),3.1文件的顺序读写文件字符串输入/输出函数,函数原型:intfputs(char*string,FILE*fp);功能:把字符串写入fp指向的文件中返值:正常,返回0;出错,为EOF,函数原型:char*fgets(char*s,intn,FILE*fp);功能:从fp指向的文件中读取长度不超过n-1个字符返值:正常,返回读到字符串的首地址;读到文件尾(EOF)或出错(NULL)为止,P300页例11.2,22,3文件的读写(3),3.1文件的顺序读写文件的格式化输入/输出函数,intfprintf(FILE*fp,constchar*format,argument,)intfscanf(FILE*fp,constchar*format,address,),功能:按格式对文件进行I/O操作返值:成功,返回I/O的个数;出错或文件尾,返回EOF,23,3文件的读写(4),3.1文件的顺序读写文件的格式化输入/输出函数,例3:有如下的学生结构定义,从键盘输入4个学生的信息,保存到文件name-list.txt文件中,structstudent_typecharname10;intnum;intage;charaddr15;,例3编写,24,3文件的读写(5),3.1文件的顺序读写文件的数据块输入/输出函数,实现文件操作一次读取一组数据,size_tfread(void*buffer,size_tsize,size_tcount,FILE*fp)size_tfwrite(void*buffer,size_tsize,size_tcount,FILE*fp),指向要输入/输出数据块的首地址的指针,每个要读/写的数据块的大小(字节数),要读/写的数据块的个数,要读/写的文件指针,返值:成功,返回读/写的块数;出错或文件尾,返回0,P304页例11.4,25,3文件的读写(6),2文件的随机读写操作rewind函数,将文件的指针指向用户指定的位置,进行文件操作,rewind函数函数原型:voidrewind(FILE*fp)功能:重置文件位置指针到文件开头返值:无,26,3文件的读写(7),2文件的随机读写操作rewind函数,例4:分析下面程序的功能,#includemain()FILE*fp1,*fp2;fp1=fopen(file1.c,r);fp2=fopen(file2.c,w);while(!feof(fp1)putchar(fgetc(fp1);rewind(fp1);while(!feof(fp1)fputc(fgetc(fp1),fp2);fclose(fp1);fclose(fp2);,从文件中第一次将它内容显示在屏幕中,第二次读取将其复制到另一个文件中,27,3文件的读写(7),2文件的随机读写操作fseek函数,fseek函数函数原型:intfseek(FILE*fp,longoffset,intwhence)功能:改变文件位置指针的位置返值:成功,返回0;失败,返回非0值,28,3文件的读写(8),2文件的随机读写操作fseek函数,例5:分析下面程序的功能,#includestdio.hmain()inti;FILE*fp;if(fp=fopen(stud_dat,rb)=NULL)printf(cannotopenfilen);exit(0);for(i=0;i4;i+=2)fseek(fp,i*sizeof(structstude

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论