欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计第11章-文件.ppt

    • 资源ID:76413593       资源大小:1.71MB        全文页数:24页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计第11章-文件.ppt

    C语言程序设计主编:连卫民 何 樱第11章 文件本章主要内容:本章主要内容:11.1 11.1 文件概述文件概述文件概述文件概述11.2 11.2 文件处理(重点)文件处理(重点)文件处理(重点)文件处理(重点)11.3 11.3 文件程序设计举例(重点)文件程序设计举例(重点)文件程序设计举例(重点)文件程序设计举例(重点)本章教学要求:本章教学要求:1.了解了解了解了解文件的定义及分类文件的定义及分类文件的定义及分类文件的定义及分类 2.熟悉熟悉熟悉熟悉文件的处理流程文件的处理流程文件的处理流程文件的处理流程 3.掌握掌握掌握掌握常用的文件处理函数的使用方法及其程序设计常用的文件处理函数的使用方法及其程序设计常用的文件处理函数的使用方法及其程序设计常用的文件处理函数的使用方法及其程序设计方法方法方法方法 11.1 文件的基本概念文件的基本概念 本节主要介绍文件的定义及分类、缓冲文件系统、文件的处理本节主要介绍文件的定义及分类、缓冲文件系统、文件的处理本节主要介绍文件的定义及分类、缓冲文件系统、文件的处理本节主要介绍文件的定义及分类、缓冲文件系统、文件的处理过程、文件程序解决的问题。过程、文件程序解决的问题。过程、文件程序解决的问题。过程、文件程序解决的问题。11.1.1 11.1.1 文件的定义与分类文件的定义与分类文件的定义与分类文件的定义与分类 所谓所谓所谓所谓“文件文件文件文件”是指存储在外部介质上的数据集合。是指存储在外部介质上的数据集合。是指存储在外部介质上的数据集合。是指存储在外部介质上的数据集合。1 1按文件内容划分按文件内容划分按文件内容划分按文件内容划分 从存储内容上看,文件分为两大类:从存储内容上看,文件分为两大类:从存储内容上看,文件分为两大类:从存储内容上看,文件分为两大类:程序文件和数据文件程序文件和数据文件程序文件和数据文件程序文件和数据文件。程。程。程。程序文件中存储的是程序代码或计算机指令;数据文件中只包含序文件中存储的是程序代码或计算机指令;数据文件中只包含序文件中存储的是程序代码或计算机指令;数据文件中只包含序文件中存储的是程序代码或计算机指令;数据文件中只包含程序文件处理的数据,通常用来保存大量数据。程序文件处理的数据,通常用来保存大量数据。程序文件处理的数据,通常用来保存大量数据。程序文件处理的数据,通常用来保存大量数据。2 2按存储方式划分按存储方式划分按存储方式划分按存储方式划分 从从从从存存存存储储储储方方方方式式式式上上上上看看看看,文文文文件件件件可可可可分分分分为为为为文文文文本本本本文文文文件件件件和和和和二二二二进进进进制制制制文文文文件件件件。文文文文本本本本文文文文件件件件以以以以字字字字符符符符形形形形式式式式存存存存储储储储数数数数据据据据(即即即即存存存存放放放放其其其其ASCIIASCII码码码码),又又又又称称称称为为为为ASCIIASCII文文文文件件件件;二二二二进进进进制制制制文文文文件件件件是是是是按按按按数数数数据据据据在在在在计计计计算算算算机机机机内内内内的的的的存存存存储储储储形形形形式式式式(二二二二进进进进制制制制代代代代码码码码)存放数据的。存放数据的。存放数据的。存放数据的。第11章 文件11.1 文件的基本概念文件的基本概念11.1.1 11.1.1 文件的定义与分类文件的定义与分类文件的定义与分类文件的定义与分类3 3按存储介质划分按存储介质划分按存储介质划分按存储介质划分 从存储介质上看,文件可分为磁盘文件、磁带文件、光盘文件从存储介质上看,文件可分为磁盘文件、磁带文件、光盘文件从存储介质上看,文件可分为磁盘文件、磁带文件、光盘文件从存储介质上看,文件可分为磁盘文件、磁带文件、光盘文件以及打印文件等。以及打印文件等。以及打印文件等。以及打印文件等。4 4按读写方式划分按读写方式划分按读写方式划分按读写方式划分 文文文文件件件件的的的的读读读读写写写写方方方方式式式式可可可可分分分分为为为为顺顺顺顺序序序序读读读读写写写写方方方方式式式式和和和和随随随随机机机机读读读读写写写写方方方方式式式式。顺顺顺顺序序序序读读读读写写写写是是是是指指指指从从从从文文文文件件件件头头头头开开开开始始始始,依依依依次次次次读读读读/写写写写文文文文件件件件的的的的内内内内容容容容;随随随随机机机机读读读读写写写写是是是是指指指指根根根根据需要从任意位置进行读据需要从任意位置进行读据需要从任意位置进行读据需要从任意位置进行读/写文件的内容。写文件的内容。写文件的内容。写文件的内容。第11章 文件11.1 文件的基本概念文件的基本概念11.1.2 文件程序解决的问题文件程序解决的问题文件的特点:文件的特点:文件的特点:文件的特点:存取方便容易,外存容量大。存取方便容易,外存容量大。存取方便容易,外存容量大。存取方便容易,外存容量大。数据可以重用。数据可以重用。数据可以重用。数据可以重用。数据共享几乎无限制。数据共享几乎无限制。数据共享几乎无限制。数据共享几乎无限制。第11章 文件11.2 文件处理文件处理11.2.1 11.2.1 缓冲文件系统缓冲文件系统缓冲文件系统缓冲文件系统 缓冲文件系统缓冲文件系统缓冲文件系统缓冲文件系统是指系统自动对每个正在使用的文件在内存中开是指系统自动对每个正在使用的文件在内存中开是指系统自动对每个正在使用的文件在内存中开是指系统自动对每个正在使用的文件在内存中开辟一个辟一个辟一个辟一个“缓冲区缓冲区缓冲区缓冲区”,当从磁盘文件输入的数据时,先将文件中,当从磁盘文件输入的数据时,先将文件中,当从磁盘文件输入的数据时,先将文件中,当从磁盘文件输入的数据时,先将文件中的数据送到的数据送到的数据送到的数据送到“输入缓冲区输入缓冲区输入缓冲区输入缓冲区”中,然后再从中,然后再从中,然后再从中,然后再从“输入缓冲区输入缓冲区输入缓冲区输入缓冲区”依次依次依次依次将数据送给接收变量;在向磁盘文件输出数据时,先将输出数将数据送给接收变量;在向磁盘文件输出数据时,先将输出数将数据送给接收变量;在向磁盘文件输出数据时,先将输出数将数据送给接收变量;在向磁盘文件输出数据时,先将输出数据送到据送到据送到据送到“输出缓冲区输出缓冲区输出缓冲区输出缓冲区”中,等装满缓冲区后才一起输出给磁盘中,等装满缓冲区后才一起输出给磁盘中,等装满缓冲区后才一起输出给磁盘中,等装满缓冲区后才一起输出给磁盘文件,文件,文件,文件,如图如图如图如图11-111-1所示所示所示所示。缓冲文件系统既可以处理文本文件,也可以处理二进制文件。缓冲文件系统既可以处理文本文件,也可以处理二进制文件。缓冲文件系统既可以处理文本文件,也可以处理二进制文件。缓冲文件系统既可以处理文本文件,也可以处理二进制文件。缓冲文件系统为每个正在使用的文件开辟一个缓冲文件系统为每个正在使用的文件开辟一个缓冲文件系统为每个正在使用的文件开辟一个缓冲文件系统为每个正在使用的文件开辟一个“文件信息区文件信息区文件信息区文件信息区”,用来存放文件的有关信息。,用来存放文件的有关信息。,用来存放文件的有关信息。,用来存放文件的有关信息。“文件信息区文件信息区文件信息区文件信息区”的这些信息保存的这些信息保存的这些信息保存的这些信息保存在一个结构体类型的变量中,该结构体类型命名为在一个结构体类型的变量中,该结构体类型命名为在一个结构体类型的变量中,该结构体类型命名为在一个结构体类型的变量中,该结构体类型命名为FILEFILE,其定,其定,其定,其定义形式如下:义形式如下:义形式如下:义形式如下:typedef struct .FILE;typedef struct .FILE;第11章 文件11.2 文件处理文件处理11.1.2 11.1.2 缓冲文件系统缓冲文件系统缓冲文件系统缓冲文件系统 当当当当程程程程序序序序中中中中用用用用到到到到某某某某个个个个文文文文件件件件,系系系系统统统统就就就就为为为为此此此此文文文文件件件件开开开开辟辟辟辟一一一一个个个个FILEFILE类类类类型型型型的的的的变变变变量量量量存存存存储储储储空空空空间间间间。但但但但是是是是,这这这这个个个个存存存存储储储储空空空空间间间间通通通通常常常常不不不不用用用用变变变变量量量量名名名名来来来来标标标标识识识识,而而而而是是是是设设设设置置置置一一一一个个个个指指指指向向向向该该该该结结结结构构构构体体体体变变变变量量量量的的的的指指指指针针针针变变变变量量量量,通通通通过过过过它它它它来来来来访访访访问问问问该该该该结构体变量(信息区)。这个指针变量就是文件指针。结构体变量(信息区)。这个指针变量就是文件指针。结构体变量(信息区)。这个指针变量就是文件指针。结构体变量(信息区)。这个指针变量就是文件指针。例如例如例如例如:FILE*fp1,*fp2,*fp3;FILE*fp1,*fp2,*fp3;这样就定义了三个指针变量这样就定义了三个指针变量这样就定义了三个指针变量这样就定义了三个指针变量fp1fp1、fp2fp2、fp3fp3,它们都是指向,它们都是指向,它们都是指向,它们都是指向FILEFILE类型结构体数据的指针变量。类型结构体数据的指针变量。类型结构体数据的指针变量。类型结构体数据的指针变量。如果把某一个文件信息区的起始地址赋给如果把某一个文件信息区的起始地址赋给如果把某一个文件信息区的起始地址赋给如果把某一个文件信息区的起始地址赋给fp1fp1(或(或(或(或fp2fp2、fp3fp3),),),),fp1fp1就指向该信息区(就指向该信息区(就指向该信息区(就指向该信息区(如图如图如图如图11-211-2所示所示所示所示)。)。)。)。通过通过通过通过fp1fp1、fp2fp2、fp3fp3就可以访问相应文件的信息区,从而达到操就可以访问相应文件的信息区,从而达到操就可以访问相应文件的信息区,从而达到操就可以访问相应文件的信息区,从而达到操作有关文件的目的。作有关文件的目的。作有关文件的目的。作有关文件的目的。第11章 文件11.2 文件处理文件处理11.2.2 11.2.2 文件的处理过程文件的处理过程文件的处理过程文件的处理过程 文件在使用前要打开,使用后要关闭。文件在使用前要打开,使用后要关闭。文件在使用前要打开,使用后要关闭。文件在使用前要打开,使用后要关闭。打开文件的过程就是使文件指针指向外存中某一文件的过程,通过文件打开文件的过程就是使文件指针指向外存中某一文件的过程,通过文件打开文件的过程就是使文件指针指向外存中某一文件的过程,通过文件打开文件的过程就是使文件指针指向外存中某一文件的过程,通过文件指针实现对文件的读指针实现对文件的读指针实现对文件的读指针实现对文件的读/写操作。写操作。写操作。写操作。关闭文件的过程就是切断文件指针与外存中某一文件联系的过程,文件关闭文件的过程就是切断文件指针与外存中某一文件联系的过程,文件关闭文件的过程就是切断文件指针与外存中某一文件联系的过程,文件关闭文件的过程就是切断文件指针与外存中某一文件联系的过程,文件操作结束。操作结束。操作结束。操作结束。文件的处理过程文件的处理过程文件的处理过程文件的处理过程如图如图如图如图11-311-3所示所示所示所示。文件的处理步骤文件的处理步骤文件的处理步骤文件的处理步骤为:为:为:为:(1 1)打开文件:使用函数)打开文件:使用函数)打开文件:使用函数)打开文件:使用函数fopen()fopen()。(2 2)读或写文件:)读或写文件:)读或写文件:)读或写文件:读函数:读函数:读函数:读函数:fgetc()fgetc()、fgets()fgets()、fscanffscanf、()fread()()fread()、getw()getw()。写函数:写函数:写函数:写函数:fputc()fputc()、fouts()fouts()、fprintf()fprintf()、fwrite()fwrite()、putw()putw()。(3 3)关闭文件:使用函数)关闭文件:使用函数)关闭文件:使用函数)关闭文件:使用函数fclose()fclose()。第11章 文件11.2 文件处理文件处理11.2.2 11.2.2 文件的处理过程文件的处理过程文件的处理过程文件的处理过程数据的数据的处理形式处理形式有:有:(1)直接处理形式。键盘)直接处理形式。键盘内存变量内存变量显示器。把数据从键盘录入后进行处理,显示器。把数据从键盘录入后进行处理,处理结果送显示器显示。适用数据量小,数据不需要保存的情况。处理结果送显示器显示。适用数据量小,数据不需要保存的情况。(2)写文件处理形式。键盘)写文件处理形式。键盘内存变量内存变量文件指针文件指针OS外存(文件)。这样外存(文件)。这样可以把大量的或以后再用的数据保存下来。可以把大量的或以后再用的数据保存下来。(3)读文件处理形式。文件名)读文件处理形式。文件名OS文件指针文件指针内存变量内存变量显示器。这样可以显示器。这样可以把存放在文件中的数据通过文件指针调入内存,处理后,输出到显示器上。把存放在文件中的数据通过文件指针调入内存,处理后,输出到显示器上。(4)修改文件处理形式。文件名)修改文件处理形式。文件名OS文件指针文件指针内存变量内存变量文件指针文件指针OS文件名(或设备名)。这样可以把存放在文件中的数据调入内存,处理后,再写文件名(或设备名)。这样可以把存放在文件中的数据调入内存,处理后,再写入文件中。入文件中。文件的处理步骤文件的处理步骤:(1)打开文件)打开文件(2)读或写文件)读或写文件(3)关闭文件)关闭文件第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数1文件打开函数文件打开函数文件在使用之前必须先打开。所谓文件在使用之前必须先打开。所谓“打开打开”是在程序和操作系统之间建立是在程序和操作系统之间建立起联系,程序把所要操作文件的一些信息通知给操作系统。起联系,程序把所要操作文件的一些信息通知给操作系统。文件打开用文件打开用fopen函数实现。它的函数实现。它的一般使用方法一般使用方法为:为:FILE*fp;fp=fopen(filename,mode);第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数2.文件读取函数文件读取函数读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用以下读取函数来实现文件的读取。以下读取函数来实现文件的读取。(1)fgetc函数函数使用格式:使用格式:ch=fgetc(fp);该函数从该函数从fp指向的文件中读取一个字符并将它保存在变量指向的文件中读取一个字符并将它保存在变量ch中。中。其中,其中,fp是已定义的文件指针变量。如果读到文件末尾或出错时,该函是已定义的文件指针变量。如果读到文件末尾或出错时,该函数返回文件结束标志数返回文件结束标志EOF。EOF是在是在stdio.h头文件中定义的宏,其值为头文件中定义的宏,其值为-1。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数2.文件读取函数文件读取函数读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用以下读取函数来实现文件的读取。以下读取函数来实现文件的读取。(2)fgets函数函数使用格式:使用格式:fgets(str,n,fp);该函数从该函数从fp指向的文件中读取指向的文件中读取n-1个字符并将其保存在个字符并将其保存在str指定的内存单指定的内存单元中,并在其后自动追加结束标志元中,并在其后自动追加结束标志0。其中,其中,fp是已定义过的文件指针变量。是已定义过的文件指针变量。函数执行成功时返回函数执行成功时返回0,失败时返回非,失败时返回非0值。值。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数2.文件读取函数文件读取函数读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用读文件就是从文件往内存中读取数据。根据存储数据的形式不同可以采用以下读取函数来实现文件的读取。以下读取函数来实现文件的读取。(3)fscanf函数函数使用格式:使用格式:fscanf(文件指针,格式字符串,输入表列文件指针,格式字符串,输入表列);该函数从文件指针指向的文件中读取格式化的数据。该函数从文件指针指向的文件中读取格式化的数据。“格式字符串格式字符串”和和“输入表列输入表列”的写法及用法与的写法及用法与scanf函数的完全相同。函数的完全相同。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数3文件写入函数文件写入函数写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,可以采用以下写入函数来实现写文件。可以采用以下写入函数来实现写文件。(1)fputc函数函数使用格式:使用格式:fputc(ch,fp);该函数将字符该函数将字符ch输出到输出到fp所指向的文件中。所指向的文件中。fp是已定义的文件指针变量,它的值是用是已定义的文件指针变量,它的值是用fopen函数打开文件时得到的;函数打开文件时得到的;ch是要写的字符。是要写的字符。函数执行成功时返回被输出的字符,否则返回函数执行成功时返回被输出的字符,否则返回EOF。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数3文件写入函数文件写入函数写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,可以采用以下写入函数来实现写文件。可以采用以下写入函数来实现写文件。(2)fputs函数函数使用格式:使用格式:fputs(str,fp);该函数把该函数把str表示的字符串写入到由表示的字符串写入到由fp指向的文件中(不写字符串结束符指向的文件中(不写字符串结束符0)。)。str可以是一个字符数组的名字、字符指针变量或字符串常量可以是一个字符数组的名字、字符指针变量或字符串常量fp是已定义过的文件指针变量。是已定义过的文件指针变量。函数执行成功时返回函数执行成功时返回0,失败时返回非,失败时返回非0值。值。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数3文件写入函数文件写入函数写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,写文件就是将内存中需要保存的数据写入外存。根据存入数据的形式不同,可以采用以下写入函数来实现写文件。可以采用以下写入函数来实现写文件。(3)fprintf函数函数使用格式:使用格式:fprintf(文件指针文件指针,格式字符串格式字符串,输出表列输出表列);该函数把格式化的数据写入由文件指针指向的文件中。该函数把格式化的数据写入由文件指针指向的文件中。“格式字符串格式字符串”和和“输出表列输出表列”的写法及用法与的写法及用法与printf函数的完全相同。函数的完全相同。说明:说明:以上介绍的文件处理常用函数的原型都在以上介绍的文件处理常用函数的原型都在stdio.h中定义。中定义。第11章 文件11.2 文件处理文件处理11.2.3 11.2.3 文件处理采用的函数文件处理采用的函数文件处理采用的函数文件处理采用的函数4文件关闭函数文件关闭函数关闭文件就是在文件处理完之后,切断缓冲区与外存文件的联系。使用的关闭文件就是在文件处理完之后,切断缓冲区与外存文件的联系。使用的函数是函数是fclose(),其,其一般格式一般格式是:是:fclose(文件指针文件指针);当顺利执行了关闭操作时,函数返回值为当顺利执行了关闭操作时,函数返回值为0,否则返回一个非,否则返回一个非0值。值。该函数一次只能关闭一个文件,若要关闭多个文件,必须使用多次。该函数一次只能关闭一个文件,若要关闭多个文件,必须使用多次。第11章 文件11.3 文件程序设计实例文件程序设计实例 本节主要介绍文件的建立、文件的读取、文件的修改、文件的本节主要介绍文件的建立、文件的读取、文件的修改、文件的本节主要介绍文件的建立、文件的读取、文件的修改、文件的本节主要介绍文件的建立、文件的读取、文件的修改、文件的复制等程序的设计方法。复制等程序的设计方法。复制等程序的设计方法。复制等程序的设计方法。11.3.1 11.3.1 文件的建立文件的建立文件的建立文件的建立 通过通过通过通过fopenfopen函数的写入方式打开一个不存在的文件,就可建立函数的写入方式打开一个不存在的文件,就可建立函数的写入方式打开一个不存在的文件,就可建立函数的写入方式打开一个不存在的文件,就可建立一个新文件。一个新文件。一个新文件。一个新文件。【例例例例11-111-1】从键盘输入若干行字符,把它们写到磁盘文件上保存。从键盘输入若干行字符,把它们写到磁盘文件上保存。分析:分析:此时建立的文件是用来保存字符的,可建立一个文本文件。此时建立的文件是用来保存字符的,可建立一个文本文件。该问题要求处理的是若干行字符,每行字符可看作是一个字符串,于是该问题要求处理的是若干行字符,每行字符可看作是一个字符串,于是可采用键盘读入函数可采用键盘读入函数fgets和文件写入函数和文件写入函数fputs来实现。来实现。第11章 文件输入完所有字符串后,在最后一行的开头输入输入完所有字符串后,在最后一行的开头输入一个一个“回车回车”键,此时字符串长度为键,此时字符串长度为0,结束循,结束循环,关闭文件,终止程序。由于环,关闭文件,终止程序。由于fputs函数不会函数不会自动在输出一个字符串后换行,所以必须单独自动在输出一个字符串后换行,所以必须单独用一个用一个fputs函数输出一个函数输出一个n,以便以后从文件,以便以后从文件中读取数据时能区分开各个字符串。中读取数据时能区分开各个字符串。此时,到该源程序所在的目录下查看,可以看此时,到该源程序所在的目录下查看,可以看到文本文件到文本文件file1.txt,打开该本文文件,里面的,打开该本文文件,里面的内容正是刚才从键盘上输入的字符串。内容正是刚才从键盘上输入的字符串。11.3 文件程序设计实例文件程序设计实例11.3.1 11.3.1 文件的建立文件的建立文件的建立文件的建立【例例例例11-211-2】假设某班级学生的考试成绩表中包括:学号,姓名,成绩。试设计假设某班级学生的考试成绩表中包括:学号,姓名,成绩。试设计假设某班级学生的考试成绩表中包括:学号,姓名,成绩。试设计假设某班级学生的考试成绩表中包括:学号,姓名,成绩。试设计程序建立一个成绩表文件。程序建立一个成绩表文件。程序建立一个成绩表文件。程序建立一个成绩表文件。分析分析分析分析:成绩表中每个学生记录可用一个结构体变量表示,学生人数可由键盘输:成绩表中每个学生记录可用一个结构体变量表示,学生人数可由键盘输:成绩表中每个学生记录可用一个结构体变量表示,学生人数可由键盘输:成绩表中每个学生记录可用一个结构体变量表示,学生人数可由键盘输入。于是可采用循环,每次由键盘输入一个学生记录后直接写入磁盘文件中入。于是可采用循环,每次由键盘输入一个学生记录后直接写入磁盘文件中入。于是可采用循环,每次由键盘输入一个学生记录后直接写入磁盘文件中入。于是可采用循环,每次由键盘输入一个学生记录后直接写入磁盘文件中进行保存。这里按记录(既数据块)进行文件的读写,用到有关函数进行保存。这里按记录(既数据块)进行文件的读写,用到有关函数进行保存。这里按记录(既数据块)进行文件的读写,用到有关函数进行保存。这里按记录(既数据块)进行文件的读写,用到有关函数freadfread和和和和fwritefwrite。调用形式为:。调用形式为:。调用形式为:。调用形式为:fread(buffer,size,count,fp);fread(buffer,size,count,fp);fwrite(buffer,size,count,fp);fwrite(buffer,size,count,fp);说明说明说明说明:bufferbuffer是一指针变量,它表示读写数据在内存中存放的起始地址;是一指针变量,它表示读写数据在内存中存放的起始地址;是一指针变量,它表示读写数据在内存中存放的起始地址;是一指针变量,它表示读写数据在内存中存放的起始地址;sizesize表示要读表示要读表示要读表示要读写数据的字节数据;写数据的字节数据;写数据的字节数据;写数据的字节数据;countcount表示是读写多少个表示是读写多少个表示是读写多少个表示是读写多少个sizesize字节的数据项;字节的数据项;字节的数据项;字节的数据项;fpfp表示已定义的指针变量。表示已定义的指针变量。表示已定义的指针变量。表示已定义的指针变量。如果如果如果如果freadfread或或或或writewrite调用成功,则函数返回值为调用成功,则函数返回值为调用成功,则函数返回值为调用成功,则函数返回值为countcount的值,即读写完整数据的值,即读写完整数据的值,即读写完整数据的值,即读写完整数据项的个数;否则返回值为项的个数;否则返回值为项的个数;否则返回值为项的个数;否则返回值为-1-1。第11章 文件11.3 文件程序设计实例文件程序设计实例11.3.2 11.3.2 文件的读取文件的读取文件的读取文件的读取 文件建立后,如果要观看文件的内容,可进行文件读取操作。文件建立后,如果要观看文件的内容,可进行文件读取操作。文件建立后,如果要观看文件的内容,可进行文件读取操作。文件建立后,如果要观看文件的内容,可进行文件读取操作。【例例例例11-311-3】从磁盘文件从磁盘文件从磁盘文件从磁盘文件file1.txt(file1.txt(例例例例11-111-1建立的建立的建立的建立的)中读回字符串,中读回字符串,中读回字符串,中读回字符串,并在屏幕上显示出来。并在屏幕上显示出来。并在屏幕上显示出来。并在屏幕上显示出来。分析:分析:分析:分析:首先对首先对首先对首先对file1.txtfile1.txt以只读方式打开;以只读方式打开;以只读方式打开;以只读方式打开;由于该文件为文本文件,存放着若干个字符串,于是可用由于该文件为文本文件,存放着若干个字符串,于是可用由于该文件为文本文件,存放着若干个字符串,于是可用由于该文件为文本文件,存放着若干个字符串,于是可用fgetsfgets函数读出各个字符串函数读出各个字符串函数读出各个字符串函数读出各个字符串,而后在屏幕显示出来即可。而后在屏幕显示出来即可。而后在屏幕显示出来即可。而后在屏幕显示出来即可。但需注意:文件使用之后必须关闭。但需注意:文件使用之后必须关闭。但需注意:文件使用之后必须关闭。但需注意:文件使用之后必须关闭。第11章 文件11.3 文件程序设计实例文件程序设计实例11.3.2 11.3.2 文件的读取文件的读取文件的读取文件的读取【例例例例11-411-4】对于由例对于由例对于由例对于由例11-2 11-2 建立的建立的建立的建立的student.datstudent.dat文件,读取其单号学文件,读取其单号学文件,读取其单号学文件,读取其单号学生数据后在显示器上输出。生数据后在显示器上输出。生数据后在显示器上输出。生数据后在显示器上输出。分析分析分析分析:在该问题中要对文件中的特定数据进行操作,这就需要对:在该问题中要对文件中的特定数据进行操作,这就需要对:在该问题中要对文件中的特定数据进行操作,这就需要对:在该问题中要对文件中的特定数据进行操作,这就需要对文件进行随机读取,此时用到文件定位函数文件进行随机读取,此时用到文件定位函数文件进行随机读取,此时用到文件定位函数文件进行随机读取,此时用到文件定位函数fseekfseek。它的作用是。它的作用是。它的作用是。它的作用是使位置指针移动到所需的位置。使用使位置指针移动到所需的位置。使用使位置指针移动到所需的位置。使用使位置指针移动到所需的位置。使用fseekfseek函数的一般格式如下:函数的一般格式如下:函数的一般格式如下:函数的一般格式如下:fseek(fseek(文件类型指针文件类型指针文件类型指针文件类型指针,位移量位移量位移量位移量,起始点起始点起始点起始点););“起始点起始点起始点起始点”是以什么地方为是以什么地方为是以什么地方为是以什么地方为基准进行移动,必需是以下值之一:基准进行移动,必需是以下值之一:基准进行移动,必需是以下值之一:基准进行移动,必需是以下值之一:0 0(或(或(或(或SEEK_SETSEEK_SET):代表文件开头):代表文件开头):代表文件开头):代表文件开头 1 1(或(或(或(或SEEK_CURSEEK_CUR):代表位置指针的当前位置):代表位置指针的当前位置):代表位置指针的当前位置):代表位置指针的当前位置 2 2(或(或(或(或SEEK_ENDSEEK_END):代表文件末尾):代表文件末尾):代表文件末尾):代表文件末尾“位移量位移量位移量位移量”是指以是指以是指以是指以“起始点起始点起始点起始点”为基点移动的字节数。如果它的值是正值,表为基点移动的字节数。如果它的值是正值,表为基点移动的字节数。如果它的值是正值,表为基点移动的字节数。如果它的值是正值,表示向前移,即从文件开头向文件末尾移动;如是负数,表示向后移,即由文示向前移,即从文件开头向文件末尾移动;如是负数,表示向后移,即由文示向前移,即从文件开头向文件末尾移动;如是负数,表示向后移,即由文示向前移,即从文件开头向文件末尾移动;如是负数,表示向后移,即由文件末尾向文件开头移动。位移量应为件末尾向文件开头移动。位移量应为件末尾向文件开头移动。位移量应为件末尾向文件开头移动。位移量应为longlong型数据,这样当文件长度很长时型数据,这样当文件长度很长时型数据,这样当文件长度很长时型数据,这样当文件长度很长时(如大于(如大于(如大于(如大于64K64K)不致出错)不致出错)不致出错)不致出错。第11章 文件11.3 文件程序设计实例文件程序设计实例11.3.3 11.3.3 文件的修改文件的修改文件的修改文件的修改 如果要改变文件中的有关数据,则称为文件的修改,它包括对如果要改变文件中的有关数据,则称为文件的修改,它包括对如果要改变文件中的有关数据,则称为文件的修改,它包括对如果要改变文件中的有关数据,则称为文件的修改,它包括对文件的读取操作和写入(建立)操作。文件的读取操作和写入(建立)操作。文件的读取操作和写入(建立)操作。文件的读取操作和写入(建立)操作。【例例例例11-511-5】编一程序对例编一程序对例10-2中建立的学生成绩表文件中建立的学生成绩表文件student.dat中的指定学生的成绩进行修改。中的指定学生的成绩进行修改。分析:分析:在该问题中要对文件中的指定数据进行修改,此时用到文件定位函数在该问题中要对文件中的指定数据进行修改,此时用到文件定位函数fseek。只要使文件指针定位到指定的学生记录,重写入新的数据即可。只要使文件指针定位到指定的学生记录,重写入新的数据即可。第11章 文件11.3 文件程序设计实例文件程序设计实例11.3.4 11.3.4 文件的复制文件的复制文件的复制文件的复制【例例例例11-611-6】编程实现文件编程实现文件student.dat的复制,即把文件的复制,即把文件student.dat中内容复制到另一个文件中内容复制到另一个文件student1.dat中。中。第11章 文件本章结束!

    注意事项

    本文(C语言程序设计第11章-文件.ppt)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开