计算机程序设计基础课程教学.ppt
《计算机程序设计基础课程教学.ppt》由会员分享,可在线阅读,更多相关《计算机程序设计基础课程教学.ppt(32页珍藏版)》请在三一办公上搜索。
1、乔 林,计算机程序设计基础,Email:Tel:62780973,清华大学计算机科学与技术系,第十章 文件与数据存储,学习目标掌握文件的基本概念学会使用常用的文件操作函数进行文件读写会使用文件存储、访问和管理数据,10.1 文件的基本概念,数据的保存与持久化在程序结束时数据仍有效文件的定义一组相关信息的集合存储于某种存储介质上具有某种特定格式,其中的信息也具有相同的含义,需要用不同的方法存取文件结构体与文件指针,文件的类型,顺序文件与随机文件顺序文件:只能顺序访问其中的信息例:存储在磁带上的文件只能顺序访问随机文件:可以随机访问文件的任一部分信息,可以指定读写位置二进制文件与文本文件文本文件:
2、信息以字符形式存储,有分行信息,阅读目标为程序员与程序二进制文件:文件以二进制码存储,无分行信息,阅读目标为程序,10.2 基本文件操作,文件打开与关闭操作FILE*fopen(const char*filename,const char*mode);int fclose(FILE*fp);文件状态与缓冲区操作int feof(FILE*fp);int fflush(FILE*fp);文件指针操作void rewind(FILE*fp);int fseek(FILE*fp,long offset,int fromwhere);long ftell(FILE*fp);,10.2 基本文件操作,文
3、件读写操作int fprintf(FILE*fp,const char*fmt,);int fscanf(FILE*fp,const char*fmt,);int fgetc(FILE*fp);char*fgets(char*str,int n,FILE*fp);int fputc(int ch,FILE*fp);char fputs(char*str,FILE*fp);int fread(void*buf,int size,int count,FILE*fp);int fwrite(void*buf,int size,int count,FILE*fp);,文件打开操作,函数原型FILE*f
4、open(const char*filename,const char*mode);返回值调用成功返回文件指针,失败返回NULL函数参数filename:文件名字符串,可以包含路径名mode:文件打开模式,文件打开模式,mode:文件打开模式r:读,若文件不存在,返回NULLw:写,若文件不存在,创建,若已存在,删除a:追加,若文件不存在,创建,若已存在,添加到文件尾部r+、w+:读写,若文件不存在,创建,若已存在,覆盖a+:读与追加,若文件不存在创建,若已存在,覆盖b:二进制格式示 例“rb”:读模式打开二进制文件“w+”:读写模式打开文本文件,文件打开示例,文件打开应用,#include#
5、include int main()FILE*fp;char filename40,mode4;while(1)/*输入文件名和打开方式*/printf(“nEnter a filename:“);gets(filename);/*输入文件名*/printf(“nEnter a mode(max 3 characters):“);gets(mode);/*输入打开方式*/,文件打开示例,/*打开文件*/if(fp=fopen(filename,mode)!=NULL)printf(“nSuccessful opening%s in mode%s.n“,filename,mode);/*输出成功
6、信息*/fclose(fp);/*关闭文件*/else fprintf(stderr,“nError opening file%s in mode%s.n“,filename,mode);/*输出不成功信息*/*询问是否结束*/puts(“Enter x to exit,any other to continue.“);if(getc(stdin)=x)break;else continue;,预定义的标准文件,标准文件:输入输出流stdin:标准输入设备,一般为键盘stdout:标准输出设备,一般为屏幕stderr:标准错误输出设备,一般为屏幕,文件关闭操作,函数原型关闭单个文件:int f
7、close(FILE*fp);关闭除标准文件之外的所有文件:int fcloseall();文件缓冲区外部块设备与内部数据流间的接口(中转站)清理文件缓冲区:int fflush(FILE*fp);清理所有文件的缓冲区:int fflushall();,文件关闭示例,将磁盘文件中的信息复制到新文件中,#include void main()FILE*in,*out;char inname12,outname12;scanf(“%s”,inname);scanf(“%s”,outname);if(in=fopen(inname,“r”)=NULL)exit(0);if(out=fopen(out
8、name,“w”)=NULL)exit(0);while(!feof(in)fputc(fgetc(in),out);fclose(in);fclose(out);,文件格式化输入输出操作,函数原型格式化输出:int fprintf(FILE*fp,const char*fmt,);格式化输入:int fscanf(FILE*fp,const char*fmt,);说 明与标准格式化输入输出函数功能基本相同差别:多了文件指针参数,输入源或输出目的均是文件,而不是标准设备思考:fprintf(stdout,);=printf();?,文件格式化输出示例,将用户输入的 5 个浮点数写入文件,#in
9、clude#include void clear_kb();int main()FILE*fp;float data5;int count;char filename20;puts(“Enter 5 floating-point numerical values.“);for(count=0;count5;count+)scanf(“%f“,/*清除键盘缓冲区*/,文件格式化输出示例,puts(“Enter a name for the file.“);gets(filename);if(fp=fopen(filename,“w“)=NULL)fprintf(stderr,“Error ope
10、ning file%s.“,filename);exit(1);/*将数据写入文件和标准输出设备stdout*/for(count=0;count 5;count+)fprintf(fp,“ndata%d=%f“,count,datacount);fprintf(stdout,“ndata%d=%f“,count,datacount);fclose(fp);printf(“n“);return 0;/*清空键盘缓冲区*/void clear_kb()char junk80;gets(junk);,文件格式化输入示例,从文件中读取 5 个浮点数,#include#include int main
11、()float f1,f2,f3,f4,f5;FILE*fp;if(fp=fopen(“INPUT.TXT“,“r“)=NULL)fprintf(stderr,“Error opening file.n“);exit(1);fscanf(fp,“%f%f%f%f%f“,文件字符输入输出操作,函数原型字符输入:int fgetc(FILE*fp);字符串输入:char*fgets(char*str,int n,FILE*fp);字符输出:int fputc(int ch,FILE*fp);字符串输出:char fputs(char*str,FILE*fp);说 明与标准字符输入输出函数功能相同差
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 课程 教学
链接地址:https://www.31ppt.com/p-6023846.html