c语言(张亦辰)第10章对文件的输入输出_第1页
c语言(张亦辰)第10章对文件的输入输出_第2页
c语言(张亦辰)第10章对文件的输入输出_第3页
c语言(张亦辰)第10章对文件的输入输出_第4页
c语言(张亦辰)第10章对文件的输入输出_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

1、16周上课中的时间调整,第10章文件的输入输出,关于10.1文件的基本知识关闭10.2文件10.3顺序读写数据文件10.4随机读写数据文件10.5文件的读写错误检测, 有关10.1文件的基本知识10.1.1文件10.1.2文件名10.1.3文件的分类10.1.4文件缓冲区10.1.5文件类型指针是什么,10.1.1文件是什么,文件有不同的类型包括源程序文件(后缀. c )、目标文件(后缀. obj )、可执行文件(后缀. exe )等。 这个文件的内容是程序代码。 什么是10.1.1文件,文件有不同的类型,编程主要使用(2)数据文件这两种文件。 文件的内容不是程序,而是程序执行中输出到磁盘(或

2、其他外部设备)的数据、程序执行中读取的数据等程序执行时读取的数据。 例如学生的成绩数据和货物交易的数据等。 本章主要介绍数据文件,10.1.1文件是什么,上一章处理过的数据的输入输出,从终端键盘输入数据,将运行结果输出到终端显示器需要输出到光盘保存,使用它需要光盘文件,10.1.1 操作系统是各种设备,例如终端键盘是输入文件的显示画面和打印机是输出文件,10.1.1是文件, “文件”是外部媒体中存储的数据的集合数据以文件形式存储在外部媒体中,操作系统以文件为单位管理数据,找到想要存储在外部媒体中的数据,然后,从该文件读取数据,在外部媒体中存储数据时,使用缓冲器10.1.1是什么文件,输入/输出

3、是数据传输的过程,数据从一个位置(如流)流到另一个位置(如流),因此输入/输出图像通常称为流,表示从源到目标的信息流。 什么是10.1.1文件,输入操作时,数据从文件流向计算机存储器的输出操作时,即使用数据从计算机流向文件的Word打开或保存文件,c程序的输入输出也由操作系统进行“列表数据从执行环境流向程序的程序一次读写一个字符,写入一行字符,以被指定的数据区域为输入输出的各种文件和设备统一表现为逻辑数据流。 语言将文件视为字符(或字节)序列。 输入输出流是字符流或字节(内容为二进制数据)流。什么是10.1.1文件?的数据文件由一系列字符(或字节)组成,无论行边界如何,两行数据之间都不会自动分

4、隔符,文件的访问以字符(字节)为单位。 由于输入输出数据流的开始和结束仅由程序控制,不由换行等物理符号控制,因此提高了处理的灵活性。 这样的文件称为流文件。 10.1.2文件名。 文件必须具有唯一的文件id,用户才能识别和浏览。 文件id表示(1)文件路径(2)文件名骨干(3)文件后缀、10.1.2文件名,文件路径表示外部存储设备中的文件位置。 例如: D: CCtempfile1.dat表示文件1.dat文件存储在d盘CC目录下的temp子目录下,文件路径、文件名中继、文件后缀、10.1.2文件文件路径表示文件存储在外部存储设备上,例如,D: CCtempfile1.dat表示文件1.dat

5、文件存储在d盘CC目录下的temp子目录下例如: D: CCtempfile1.dat表示文件1.dat文件存储在d盘内的CC目录下的temp子目录下,命名规则遵循标识符的命名规则,10.1.2文件名、文件路径遵循外部路径示例: D: CCtempfile1.dat表示文件1.dat文件存储在d磁盘中CC目录下的temp子目录下,通常不超过三个字符(doc、txt、dat、c、cpp、obj、) 不转换而输出到外部存储器时,二进制文件需要以ASCII代码形式存储在外部存储器中时,存储前转换的ASCII文件也称为文本文件,每个字节1个字符的ASCII代码、10.1.3文件的分类字符一律以ASCI

6、I形式也可以以ASCII形式存储,也可以是整数10000,若以ASCII码形式输出到磁盘,则在磁盘中占1字节(每个字符1字节),若以二进制形式输出,则在磁盘中使用4字节(VC时为(0)、(0)、(0) ),a 10.1.4文件缓冲器、ANSI C标准或使用“缓冲文件系统”处理数据文件的缓冲器文件系统是指系统自动从存储器输出到盘的数据先发送到存储器的缓冲器,缓冲器已满从磁盘向计算机读入数据时,一次从磁盘文件输入到内存缓冲区(缓冲区已满),从缓冲区输入程序数据缓冲区(程序变量)、10.1.4文件缓冲区、磁盘、从内存输入到磁盘、程序数据区域、输出文件缓冲器、输入文件缓冲器、磁盘、从磁盘到计算机的数据

7、读取、缓冲器、10 .完整简称“文件指针”使用的每个文件都是与文件有关的信息(文件的名称、文件这些信息存储在结构变量中。 此结构类型由系统声明,并由FILE、 文件,命名为10.1.5文件类型指针,声明文件结构类型的信息包含在报头文件“stdio.h”中,通常设置指向文件类型变量的指针变量,并通过它引用这些文件类型变量10.1 文件f2的文件信息区域、fp2、文件f3的文件信息区域、fp3、10.2打开、关闭,用fopen函数打开10.2.1数据文件10.2.2所谓“打开”,是指对于文件适当的信息区域(文件用10.2.1fopen函数打开数据文件,编写程序时,在打开文件的同时,指定指针变量指向

8、该文件,即指针变量和文件之间的关系,能够用该指针变量读写文件的“。 在文件方法中,“读取”fopen函数的上限值是指向a1文件的指针,10.2.1使用fopen函数打开数据文件,通常将fopen函数的上限值分配给指向文件的指针变量。例如:文件* FP; fp=fopen(“a1”、“r”); fp与文件a1相关联,fp指a1文件,10.2.1使用fopen函数打开数据文件,打开一个文件时,访问的文件的名称使用文件的方式(“读”或“写”等) 向编译系统通知指向哪个指针变量的文件的使用方法是,打开文本文件“w”(只读)进行“r”(只写)输入,打开文本文件“a”(追加)进行输出,在文本文件的末尾输入

9、数据“RR” 打开二进制文件“wb”输入打开(读写)写文本文件w创建新的读写文本文件a打开(读写)读写文本文件rb读写二进制文件以“r”方式打开的文件只能用于输入计算机,不能作为该文件的输出数据。 而且,该文件应该已经存在,数据一定混在一起,程序还可以从该文件中读出数据。 不能用“r”打开不存在的文件。 不打开的话会发生错误。 说明: (2)以w方式打开的文件只能用于向该文件写入数据(即输出文件),不能用于向计算机输入。 如果原本该文件不存在,则在打开该文件之前创建具有指定名称的新文件。 如果原本就存在该文件名的文件,则在打开该文件前删除该文件,然后重新创建新文件。 说明: (3)想在文件的末

10、尾追加新的数据(不想删除原来的数据)的情况下,应该用“a”的方式打开,但是这个时候应该保证该文件已经存在,否则会显示错误信息。 打开文件时,文件的读写标志移动到文件的末尾,(4)以r、w、a方式打开的文件说明可用于数据的输入和输出。 在r方法中,该文件应该已经存在。 可以用w方式创建新文件,将数据写入该文件后,再读取该文件的数据。 以a方式打开的文件不会删除原始文件,文件的读写位置标记会移动到文件的末尾,可以添加或阅读。 说明: (5)如果打开失败,fopen函数返回错误信息。 fopen函数打开一个if (FP=fopen (“文件1”,r ) )=null )打印机(“cannotopen

11、thisfis”)文件。 关闭正在运行的程序,说明: (6) C标准建议使用表10.1所示的文件使用方法打开文本文件或二进制文件,但是现在使用的某些c编译系统并不完全提供这些功能使用二进制文件说明: (8)程序可以使用标准输入流、标准输出流、标准错误输出流三个标准流文件。 系统在这三个文件中指定与终端的对应关系的标准输入流stdin或来自终端的输入标准输出流stdout或向终端的输出标准错误输出流stderr在程序错误时向终端发射错误消息,并在程序开始时自动打开。 因此,程序制作者不需要在程序中以fopen函数打开它们。 因而,以往我们使用的从终端到终端的输入输出不需要打开终端文件。 用10.

12、2.2fclose函数关闭数据文件,用于文件的fclose函数关闭。 fclose函数调用的一般格式是fclose (文件指针)示例: fclose (fp ); 不关闭文件的话,数据会丢失。10.3依次读写数据文件、依次写入时、先写入的数据保存到文件后依次读写时、先保存到文件前的数据、后保存到读写文件后的数据相对于依次读写, 对文件的读写数据的顺序和数据的物理顺序一致的顺序读写通过库函数实现10.3.1如何对文件读写字符10.3.2如何对文件读写字符串以10.3.3格式读写文件复盖的函数,例题解决的想法:用fgetc函数从键盘一个个输入文字,用fputc函数写入盘文件即可。 包括#包括主机(

13、)文件* FP; 挑战,文件名10; printf (请输入要使用的文件名: ); 扫描(% s,文件名); if (FP=fopen (文件名,w ) )=空打印(无法打开此文件n ):exit (0); ch=getchar ();接受最后输入的换行符、输入文件名、仅写入、用exit函数相加后,printf (“请输入字符串(以#结尾):); ch=getchar (); 魔法少女=#,fputc (ch,fp ); putchar(ch ); ch=getchar (); fclose(fp ); putchar (十); /*输出换行符*/return 0; 中的组合图层性质变更选项。 例10.2将一个磁盘文件的信息复制到另一个磁盘文件。 必须将上面示例中创建的file1.dat文件的内容复制到另一个磁盘文件file2.dat中。 解决问题的方法:处理此问题的算法是从file1.dat文件中一次读取一个字符,然后在file2.dat中一次输出一个字符。 包括#包括主()文件* in、*out。 朝鲜十号、朝鲜十号、朝鲜十号; printf (输入导入文件的名称: )扫描(% s,infile ); printf (

温馨提示

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

评论

0/150

提交评论