程序设计基础10.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《程序设计基础10.ppt》由会员分享,可在线阅读,更多相关《程序设计基础10.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础第十章 文件与数据存储学习目标学习目标掌握文件的基本概念掌握文件的基本概念掌握文件的基本概念掌握文件的基本概念学会使用常用的文件操作函数进行文件读写学会使用常用的文件操作函数进行文件读写学会使用常用的文件操作函数进行文件读写学会使用常用的文件操作函数进行文件读写会使用文件存储、访问和管理数据会使用文件存储、访问和管理数据会使用文件存储、访问和管理数据会使用文件存储、访问和管理数据2清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础10.1 文件的基本概念数据的保存与持久化数据的保存与
2、持久化在程序结束时数据仍有效在程序结束时数据仍有效在程序结束时数据仍有效在程序结束时数据仍有效文件的定义文件的定义一组相关信息的集合一组相关信息的集合一组相关信息的集合一组相关信息的集合存储于某种存储介质上存储于某种存储介质上存储于某种存储介质上存储于某种存储介质上具有某种特定格式,其中的信息也具有相同的含具有某种特定格式,其中的信息也具有相同的含具有某种特定格式,其中的信息也具有相同的含具有某种特定格式,其中的信息也具有相同的含义,需要用不同的方法存取义,需要用不同的方法存取义,需要用不同的方法存取义,需要用不同的方法存取文件结构体与文件指针文件结构体与文件指针3清华大学计算中心清华大学计算
3、中心http:/计计算算机机程程序序设设计计基基础础文件的类型顺序文件与随机文件顺序文件与随机文件顺序文件:只能顺序访问其中的信息顺序文件:只能顺序访问其中的信息顺序文件:只能顺序访问其中的信息顺序文件:只能顺序访问其中的信息 例:存储在磁带上的文件只能顺序访问例:存储在磁带上的文件只能顺序访问例:存储在磁带上的文件只能顺序访问例:存储在磁带上的文件只能顺序访问随机文件:可以随机访问文件的任一部分信息,随机文件:可以随机访问文件的任一部分信息,随机文件:可以随机访问文件的任一部分信息,随机文件:可以随机访问文件的任一部分信息,可以指定读写位置可以指定读写位置可以指定读写位置可以指定读写位置二进
4、制文件与文本文件二进制文件与文本文件文本文件:信息以字符形式存储,有分行信息,文本文件:信息以字符形式存储,有分行信息,文本文件:信息以字符形式存储,有分行信息,文本文件:信息以字符形式存储,有分行信息,阅读目标为程序员与程序阅读目标为程序员与程序阅读目标为程序员与程序阅读目标为程序员与程序二进制文件:文件以二进制码存储,无分行信息,二进制文件:文件以二进制码存储,无分行信息,二进制文件:文件以二进制码存储,无分行信息,二进制文件:文件以二进制码存储,无分行信息,阅读目标为程序阅读目标为程序阅读目标为程序阅读目标为程序4清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基
5、基础础10.2 基本文件操作文件打开与关闭操作文件打开与关闭操作文件打开与关闭操作文件打开与关闭操作 FILE*FILE*fopenfopen(const char*(const char*filenamefilename,const char*,const char*modemode););intint fclosefclose(FILE*(FILE*fpfp););文件状态与缓冲区操作文件状态与缓冲区操作文件状态与缓冲区操作文件状态与缓冲区操作 intint feoffeof(FILE*(FILE*fpfp););intint fflushfflush(FILE*(FILE*fpfp);)
6、;文件指针操作文件指针操作文件指针操作文件指针操作 void void rewindrewind(FILE*(FILE*fpfp););intint fseekfseek(FILE*(FILE*fpfp,long,long offsetoffset,intint fromwherefromwhere););long long ftellftell(FILE*(FILE*fpfp););5清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础10.2 基本文件操作文件读写操作文件读写操作文件读写操作文件读写操作 intint fprintffprintf(FILE*(F
7、ILE*fpfp,const char*,const char*fmtfmt,);,);intint fscanffscanf(FILE*(FILE*fpfp,const char*,const char*fmtfmt,);,);intint fgetcfgetc(FILE*(FILE*fpfp););char*char*fgetsfgets(char*(char*strstr,intint n n,FILE*,FILE*fpfp););intint putcputc(intint chch,FILE*,FILE*fpfp););char char fputsfputs(char*(char*
8、strstr,FILE*,FILE*fpfp););intint freadfread(void*(void*bufbuf,intint sizesize,intint countcount,FILE*,FILE*fpfp););intint fwritefwrite(void*(void*bufbuf,intint sizesize,intint countcount,FILE*,FILE*fpfp););6清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件打开操作函数原型函数原型FILE*FILE*fopenfopen(const char*(const
9、char*filenamefilename,const char*,const char*modemode););返回值返回值调用成功返回文件指针,调用成功返回文件指针,调用成功返回文件指针,调用成功返回文件指针,失败返回失败返回失败返回失败返回NULLNULL函数参数函数参数filenamefilename:文件名字符串,可以包含路径名文件名字符串,可以包含路径名文件名字符串,可以包含路径名文件名字符串,可以包含路径名modemode:文件打开模式文件打开模式文件打开模式文件打开模式7清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件打开模式modemode
10、:文件打开模式文件打开模式文件打开模式文件打开模式 r r:读,若文件不存在,返回读,若文件不存在,返回读,若文件不存在,返回读,若文件不存在,返回NULLNULL ww:写,若文件不存在,创建,若已存在,删除写,若文件不存在,创建,若已存在,删除写,若文件不存在,创建,若已存在,删除写,若文件不存在,创建,若已存在,删除 a a:追加,若文件不存在,创建,若已存在,添加到文件追加,若文件不存在,创建,若已存在,添加到文件追加,若文件不存在,创建,若已存在,添加到文件追加,若文件不存在,创建,若已存在,添加到文件尾部尾部尾部尾部 r r+、ww+:读写,若文件不存在,创建,若已存在,覆盖读写,
11、若文件不存在,创建,若已存在,覆盖读写,若文件不存在,创建,若已存在,覆盖读写,若文件不存在,创建,若已存在,覆盖 a a+:读与追加,若文件不存在创建,若已存在,覆盖读与追加,若文件不存在创建,若已存在,覆盖读与追加,若文件不存在创建,若已存在,覆盖读与追加,若文件不存在创建,若已存在,覆盖 b b:二进制格式二进制格式二进制格式二进制格式示示示示 例例例例“rbrb”:读模式打开二进制文件读模式打开二进制文件读模式打开二进制文件读模式打开二进制文件“ww+”+”:读写模式打开文本文件读写模式打开文本文件读写模式打开文本文件读写模式打开文本文件8清华大学计算中心清华大学计算中心http:/计
12、计算算机机程程序序设设计计基基础础文件打开示例文件打开应用文件打开应用#include#include#include#include intint mainmain()()FILE*FILE*fpfp;char char filenamefilename40,40,modemode4;4;while(1)while(1)/*/*输入文件名和打开方式输入文件名和打开方式输入文件名和打开方式输入文件名和打开方式*/*/printfprintf(“(“n nEnterEnter a filename:“);a filename:“);getsgets(filenamefilename););/*/
13、*输入文件名输入文件名输入文件名输入文件名*/*/printfprintf(“(“n nEnterEnter a mode(max 3 characters):“);a mode(max 3 characters):“);getsgets(mode mode););/*/*输入打开方式输入打开方式输入打开方式输入打开方式*/*/9清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件打开示例 /*/*打开文件打开文件打开文件打开文件*/*/if(if(fpfp=fopenfopen(filenamefilename,modemode)!=)!=NULLNULL)p
14、rintfprintf(“(“n nSuccessfulSuccessful opening%opening%s s in mode%in mode%s s.n n“,“,filenamefilename,mode mode););/*/*输出成功信息输出成功信息输出成功信息输出成功信息*/*/fclosefclose(fpfp ););/*/*关闭文件关闭文件关闭文件关闭文件*/*/elseelse fprintffprintf(stderrstderr,“,“n nErrorError opening file%opening file%s s in mode%in mode%s s.n
15、n“,“,filenamefilename,mode mode););/*/*输出不成功信息输出不成功信息输出不成功信息输出不成功信息*/*/*/*询问是否结束询问是否结束询问是否结束询问是否结束*/*/putsputs(“Enter x to exit,any other to continue.“);(“Enter x to exit,any other to continue.“);if(if(getcgetc(stdinstdin)=x)break;)=x)break;else continue;else continue;10清华大学计算中心清华大学计算中心http:/计计算算机机程
16、程序序设设计计基基础础预定义的标准文件标准文件:输入输出流标准文件:输入输出流stdinstdin:标准输入设备,一般为键盘标准输入设备,一般为键盘标准输入设备,一般为键盘标准输入设备,一般为键盘stdoutstdout:标准输出设备,一般为屏幕标准输出设备,一般为屏幕标准输出设备,一般为屏幕标准输出设备,一般为屏幕stderrstderr:标准错误输出设备,一般为屏幕标准错误输出设备,一般为屏幕标准错误输出设备,一般为屏幕标准错误输出设备,一般为屏幕stdprnstdprn:标准打印设备,一般为缺省打印机标准打印设备,一般为缺省打印机标准打印设备,一般为缺省打印机标准打印设备,一般为缺省打印
17、机stdauxstdaux:标准标准标准标准11清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件关闭操作函数原型函数原型关闭单个文件:关闭单个文件:关闭单个文件:关闭单个文件:intint fclosefclose(FILE*(FILE*fpfp););关闭除标准文件之外的所有文件:关闭除标准文件之外的所有文件:关闭除标准文件之外的所有文件:关闭除标准文件之外的所有文件:intint fcloseallfcloseall();();文件缓冲区文件缓冲区外部块设备与内部数据流间的接口(中转站)外部块设备与内部数据流间的接口(中转站)外部块设备与内部数据流间的接
18、口(中转站)外部块设备与内部数据流间的接口(中转站)清理文件缓冲区:清理文件缓冲区:清理文件缓冲区:清理文件缓冲区:intint fflushfflush(FILE*(FILE*fpfp););清理所有文件的缓冲区:清理所有文件的缓冲区:清理所有文件的缓冲区:清理所有文件的缓冲区:intint fflushallfflushall();();12清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件关闭示例将磁盘文件中的信息复制到新文件中将磁盘文件中的信息复制到新文件中#include#include void void mainmain()()FILE*FILE
19、*inin,*,*outout;char;char innameinname12,12,outnameoutname12;12;scanfscanf(“%s”,(“%s”,innameinname););scanfscanf(“%s”,(“%s”,outnameoutname););if(if(inin=fopenfopen(innameinname,“r”)=,“r”)=NULLNULL)exit(0);)exit(0);if(if(outout=fopenfopen(outnameoutname,“w”)=,“w”)=NULLNULL)exit(0);)exit(0);while(!whi
20、le(!feoffeof(inin)fputcfputc(fgetcfgetc(inin),),outout););fclosefclose(inin););fclosefclose(outout););13清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件格式化输入输出操作函数原型函数原型格式化输出:格式化输出:格式化输出:格式化输出:intint fprintffprintf(FILE*(FILE*fpfp,const char*,const char*fmtfmt,);,);格式化输入:格式化输入:格式化输入:格式化输入:intint fscanffsc
21、anf(FILE*(FILE*fpfp,const char*,const char*fmtfmt,);,);说说 明明与标准格式化输入输出函数功能基本相同与标准格式化输入输出函数功能基本相同与标准格式化输入输出函数功能基本相同与标准格式化输入输出函数功能基本相同差别:多了文件指针参数,输入源或输出目的均差别:多了文件指针参数,输入源或输出目的均差别:多了文件指针参数,输入源或输出目的均差别:多了文件指针参数,输入源或输出目的均是文件,而不是标准设备是文件,而不是标准设备是文件,而不是标准设备是文件,而不是标准设备 思考:思考:思考:思考:fprintffprintf(stdoutstdout
22、,);=,);=printfprintf();?();?14清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件格式化输出示例将用户输入的将用户输入的 5 5 个浮点数写入文件个浮点数写入文件#include#include#include#include void void clear_kbclear_kb();();intint mainmain()()FILE*FILE*fpfp;float float datadata5;5;intint countcount;char char filenamefilename20;20;putsputs(“Enter
23、 5 floating-point numerical values.“);(“Enter 5 floating-point numerical values.“);for(for(countcount=0;=0;countcount5;5;countcount+)+)scanfscanf(“%(“%f f“,&“,&datadata countcount););clear_kbclear_kb();();/*/*清除键盘缓冲区清除键盘缓冲区清除键盘缓冲区清除键盘缓冲区*/*/15清华大学计算中心清华大学计算中心http:/计计算算机机程程序序设设计计基基础础文件格式化输出示例 putsput
24、s(“Enter a name for the file.“);(“Enter a name for the file.“);getsgets(filename filename););if(if(fpfp=fopenfopen(filenamefilename,“w“)=,“w“)=NULL NULL)fprintffprintf(stderrstderr,“Error opening file%,“Error opening file%s s.“,.“,filename filename);exit(1););exit(1);/*/*将数据写入文件和标准输出设备将数据写入文件和标准输出设备
25、将数据写入文件和标准输出设备将数据写入文件和标准输出设备stdoutstdout*/*/for(for(countcount=0;=0;countcount 5;5;countcount+)+)fprintffprintf(fpfp,“,“n ndata%data%d d=%=%f f“,“,countcount,datadata countcount););fprintffprintf(stdoutstdout,“,“n ndata%data%d d=%=%f f“,“,countcount,datadata countcount););fclosefclose(fpfp ););print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 10
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内