C语言程序设计PPT课件第13章文件操作.ppt
《C语言程序设计PPT课件第13章文件操作.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件第13章文件操作.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第13131313章章章章 文件操作文件操作文件操作文件操作2023/1/162/41本章学习内容本章学习内容 二进制文件和文本文件二进制文件和文本文件 文件的打开和关闭文件的打开和关闭 文件的文件的顺序读写与随机读写顺序读写与随机读写 标准输入输出及其重定向标准输入输出及其重定向2023/1/163/41Von J.Neumann Architecture输入输入/输出输出设备设备存储器存储器运算器运算器控制器控制器程序程序和输入数据和输入数据输出结果输出结果取出数据取出数据存入数据存入数据操作命令操作命令存取命令存取命令取出取出程序指令程序指令输入输出输入输出命令命令计算结果计算结果
2、CPU大脑大脑记忆装置记忆装置(Memory)眼睛和耳朵眼睛和耳朵(I/O devices)Where to put data in computer?Where to put data in computer?How to input or output data?How to input or output data?2023/1/164/41I/O设备设备 输入设备输入设备输入设备输入设备键盘、鼠标键盘、鼠标键盘、鼠标键盘、鼠标软盘、硬盘、光驱(以文件的形式)软盘、硬盘、光驱(以文件的形式)软盘、硬盘、光驱(以文件的形式)软盘、硬盘、光驱(以文件的形式)扫描仪、视频采集卡、电视卡、游戏杆
3、、话筒扫描仪、视频采集卡、电视卡、游戏杆、话筒扫描仪、视频采集卡、电视卡、游戏杆、话筒扫描仪、视频采集卡、电视卡、游戏杆、话筒 输出设备输出设备输出设备输出设备显示器、打印机显示器、打印机显示器、打印机显示器、打印机软盘、硬盘、软盘、硬盘、软盘、硬盘、软盘、硬盘、CD/DVD-RW CD/DVD-RW(以文件的形式)(以文件的形式)(以文件的形式)(以文件的形式)音箱音箱音箱音箱 单纯的输入设备或者单纯的输出设备越来越少单纯的输入设备或者单纯的输出设备越来越少单纯的输入设备或者单纯的输出设备越来越少单纯的输入设备或者单纯的输出设备越来越少2023/1/165/41标准输入标准输入/输出输出 字
4、符界面的操作系统一般都提供标准输入与输出字符界面的操作系统一般都提供标准输入与输出字符界面的操作系统一般都提供标准输入与输出字符界面的操作系统一般都提供标准输入与输出设备设备设备设备DOSDOS、LinuxLinux、UNIXUNIX 一般情况,标准输入就是键盘,标准输出就是终一般情况,标准输入就是键盘,标准输出就是终一般情况,标准输入就是键盘,标准输出就是终一般情况,标准输入就是键盘,标准输出就是终端显示器端显示器端显示器端显示器操作系统有能力重定向标准输入与输出,比如让文件操作系统有能力重定向标准输入与输出,比如让文件操作系统有能力重定向标准输入与输出,比如让文件操作系统有能力重定向标准输
5、入与输出,比如让文件作为标准输入(标准输出)作为标准输入(标准输出)作为标准输入(标准输出)作为标准输入(标准输出)这种重定向程序本身是感觉不到的这种重定向程序本身是感觉不到的这种重定向程序本身是感觉不到的这种重定向程序本身是感觉不到的自来水厂自来水厂2023/1/166/41DOS下的标准输入下的标准输入/输出重定向输出重定向 程序程序程序程序progprog如下如下如下如下main()main()charchar c;c;whilewhile(c=getchar()!=n)(c=getchar()!=n)putchar(+c);putchar(+c);输入重定向输入重定向输入重定向输入重定
6、向prog infile.txtprog outfile.txtprog outfile.txt2023/1/167/41流(流(Stream)计算机中的流的概念计算机中的流的概念计算机中的流的概念计算机中的流的概念一般称为数据流,也叫做字节流、比特流一般称为数据流,也叫做字节流、比特流一般称为数据流,也叫做字节流、比特流一般称为数据流,也叫做字节流、比特流 File stream(File stream(文件流文件流文件流文件流),Video stream(),Video stream(视频流视频流视频流视频流)and Audio stream()and Audio stream(音音音音频
7、流频流频流频流)in specific field.)in specific field.可以倒流的数据流可以倒流的数据流可以倒流的数据流可以倒流的数据流 如果你想重新读已经读过的数据,或者要修改已经写入的数据,如果你想重新读已经读过的数据,或者要修改已经写入的数据,如果你想重新读已经读过的数据,或者要修改已经写入的数据,如果你想重新读已经读过的数据,或者要修改已经写入的数据,可以发出流控(可以发出流控(可以发出流控(可以发出流控(Flow ControlFlow Control)命令)命令)命令)命令不会倒流的数据流也很多不会倒流的数据流也很多不会倒流的数据流也很多不会倒流的数据流也很多 网
8、络上的数据流。网络和数据线等介质只有很小的数据缓冲区,网络上的数据流。网络和数据线等介质只有很小的数据缓冲区,网络上的数据流。网络和数据线等介质只有很小的数据缓冲区,网络上的数据流。网络和数据线等介质只有很小的数据缓冲区,没有大量存储的能力没有大量存储的能力没有大量存储的能力没有大量存储的能力 流的载体?流的载体?流的载体?流的载体?磁盘文件、终端显示器或打印机、磁盘文件、终端显示器或打印机、磁盘文件、终端显示器或打印机、磁盘文件、终端显示器或打印机、存储器存储器存储器存储器等等等等 2023/1/168/41外存外存 内存容易健忘,所以数据必须保存在内存容易健忘,所以数据必须保存在内存容易健
9、忘,所以数据必须保存在内存容易健忘,所以数据必须保存在“不健忘不健忘不健忘不健忘”的外的外的外的外存上存上存上存上磁盘(磁盘(磁盘(磁盘(Magnetic DisksMagnetic Disks)光盘(光盘(光盘(光盘(CDCD、DVDDVD)U U盘(盘(盘(盘(Flash MemoryFlash Memory).容量大、断电后数据不丢失,可重复使用,容量大、断电后数据不丢失,可重复使用,容量大、断电后数据不丢失,可重复使用,容量大、断电后数据不丢失,可重复使用,永久保存永久保存永久保存永久保存一般都以一般都以一般都以一般都以文件文件文件文件的形式给用户及应用程序使用的形式给用户及应用程序使
10、用的形式给用户及应用程序使用的形式给用户及应用程序使用2023/1/169/41文件(文件(File)文件文件文件文件一般指存储在外部介质上有名字的一组相关数据的集合一般指存储在外部介质上有名字的一组相关数据的集合一般指存储在外部介质上有名字的一组相关数据的集合一般指存储在外部介质上有名字的一组相关数据的集合用文件可长期保存数据,实现数据共享用文件可长期保存数据,实现数据共享用文件可长期保存数据,实现数据共享用文件可长期保存数据,实现数据共享在在在在C C C C语言中,文件可泛指磁盘文件、终端显示器或打印语言中,文件可泛指磁盘文件、终端显示器或打印语言中,文件可泛指磁盘文件、终端显示器或打印
11、语言中,文件可泛指磁盘文件、终端显示器或打印机机机机 程序中的文件程序中的文件程序中的文件程序中的文件在程序运行时在程序运行时在程序运行时在程序运行时由程序在磁盘上建立一个文件,通过写操由程序在磁盘上建立一个文件,通过写操由程序在磁盘上建立一个文件,通过写操由程序在磁盘上建立一个文件,通过写操作将数据存入该文件作将数据存入该文件作将数据存入该文件作将数据存入该文件由程序打开磁盘上的某个已有文件,并通过读操作将文由程序打开磁盘上的某个已有文件,并通过读操作将文由程序打开磁盘上的某个已有文件,并通过读操作将文由程序打开磁盘上的某个已有文件,并通过读操作将文件中的数据读入内存件中的数据读入内存件中的
12、数据读入内存件中的数据读入内存供程序使用供程序使用供程序使用供程序使用2023/1/1610/41文件(文件(Files)与流)与流(Streams)程序通过文件打开操作把流与设备联系起来,程序通过文件打开操作把流与设备联系起来,程序通过文件打开操作把流与设备联系起来,程序通过文件打开操作把流与设备联系起来,文件打开后,可在程序和文件之间交换数据文件打开后,可在程序和文件之间交换数据文件打开后,可在程序和文件之间交换数据文件打开后,可在程序和文件之间交换数据 程序通过文件关闭操作断开流与文件的联系程序通过文件关闭操作断开流与文件的联系程序通过文件关闭操作断开流与文件的联系程序通过文件关闭操作断
13、开流与文件的联系 所有流的性质都一样所有流的性质都一样所有流的性质都一样所有流的性质都一样因为流与设备无关,所以能写入磁盘文件的同一函因为流与设备无关,所以能写入磁盘文件的同一函因为流与设备无关,所以能写入磁盘文件的同一函因为流与设备无关,所以能写入磁盘文件的同一函数也能写入另一设备,如控制台终端等数也能写入另一设备,如控制台终端等数也能写入另一设备,如控制台终端等数也能写入另一设备,如控制台终端等 文件的能力则不同文件的能力则不同文件的能力则不同文件的能力则不同如磁盘文件支持随机存取,而键盘则不能如磁盘文件支持随机存取,而键盘则不能如磁盘文件支持随机存取,而键盘则不能如磁盘文件支持随机存取,
14、而键盘则不能2023/1/1611/41文件的存放(文件的存放(Storage)可以建立若干文件目录可以建立若干文件目录可以建立若干文件目录可以建立若干文件目录(directoryfolderdirectoryfolder文件夹文件夹文件夹文件夹)在目录里保存文件在目录里保存文件在目录里保存文件在目录里保存文件 同一级目录里保存的文件不能同名同一级目录里保存的文件不能同名同一级目录里保存的文件不能同名同一级目录里保存的文件不能同名 对使用者而言,只要知道文件的路对使用者而言,只要知道文件的路对使用者而言,只要知道文件的路对使用者而言,只要知道文件的路径径径径(pathpath,全目录全目录全目
15、录全目录)和文件名,就能使和文件名,就能使和文件名,就能使和文件名,就能使用该文件用该文件用该文件用该文件qqC:homeSunnermain.c C:homeSunnermain.c qq这都是托这都是托这都是托这都是托OSOS的福的福的福的福2023/1/1612/4113.1二进制文件和文本文件二进制文件和文本文件 文件的类型(文件的类型(文件的类型(文件的类型(Type of FilesType of Files)?)?)?)?二进制文件二进制文件二进制文件二进制文件是一种字节序列,没有字符变换是一种字节序列,没有字符变换是一种字节序列,没有字符变换是一种字节序列,没有字符变换按照数据
16、在内存中的存储形式(二进制)存储到文件按照数据在内存中的存储形式(二进制)存储到文件按照数据在内存中的存储形式(二进制)存储到文件按照数据在内存中的存储形式(二进制)存储到文件 如整数如整数如整数如整数12123 3,在内存占,在内存占,在内存占,在内存占2 2个字节,则文件中也占个字节,则文件中也占个字节,则文件中也占个字节,则文件中也占2 2个字节个字节个字节个字节 文本文件文本文件文本文件文本文件/ASCII/ASCII码文件码文件码文件码文件是一种字符序列,是一种字符序列,是一种字符序列,是一种字符序列,文件中存储每个字符的文件中存储每个字符的文件中存储每个字符的文件中存储每个字符的A
17、SCIIASCII码码码码 如整数如整数如整数如整数12123 3在文件中占在文件中占在文件中占在文件中占3 3个字节,分别存放这个字节,分别存放这个字节,分别存放这个字节,分别存放这3 3个字符的个字符的个字符的个字符的ASCIIASCII码码码码如果存如果存12341234呢?呢?2023/1/1613/41文件的格式(文件的格式(Format of Files)数据必须按照存入的类型读出,才能恢复其本来数据必须按照存入的类型读出,才能恢复其本来数据必须按照存入的类型读出,才能恢复其本来数据必须按照存入的类型读出,才能恢复其本来面貌面貌面貌面貌 公开的标准格式公开的标准格式公开的标准格式公
18、开的标准格式如如如如bmpbmp、tiftif、gifgif、jpgjpg和和mp3mp3等类型的文件,有大量软等类型的文件,有大量软等类型的文件,有大量软等类型的文件,有大量软件能生成和使用这些类型的文件件能生成和使用这些类型的文件件能生成和使用这些类型的文件件能生成和使用这些类型的文件 不公开或加密的文件格式不公开或加密的文件格式不公开或加密的文件格式不公开或加密的文件格式如如如如Microsoft WordMicrosoft Word的的的的docdoc格式就不公开,所以至今没有格式就不公开,所以至今没有格式就不公开,所以至今没有格式就不公开,所以至今没有WordWord以外的其他软件能
19、完美地读出以外的其他软件能完美地读出以外的其他软件能完美地读出以外的其他软件能完美地读出docdoc文件文件文件文件 2023/1/1614/41缓冲型和非缓冲型文件系统缓冲型和非缓冲型文件系统 缓冲型文件系统缓冲型文件系统缓冲型文件系统缓冲型文件系统指系统自动在内存中为每一个正在使用的文件开辟一个指系统自动在内存中为每一个正在使用的文件开辟一个指系统自动在内存中为每一个正在使用的文件开辟一个指系统自动在内存中为每一个正在使用的文件开辟一个缓冲区,在读写文件时,数据先送到缓冲区,再传给缓冲区,在读写文件时,数据先送到缓冲区,再传给缓冲区,在读写文件时,数据先送到缓冲区,再传给缓冲区,在读写文件
20、时,数据先送到缓冲区,再传给C C程序或外存上程序或外存上程序或外存上程序或外存上缓冲文型件系统利用文件指针标识文件缓冲文型件系统利用文件指针标识文件缓冲文型件系统利用文件指针标识文件缓冲文型件系统利用文件指针标识文件缓冲型文件系统中的文件操作,也称高级文件操作缓冲型文件系统中的文件操作,也称高级文件操作缓冲型文件系统中的文件操作,也称高级文件操作缓冲型文件系统中的文件操作,也称高级文件操作 高级文件操作函数高级文件操作函数高级文件操作函数高级文件操作函数是是是是ANSI CANSI C定义的文件操作函数,具定义的文件操作函数,具定义的文件操作函数,具定义的文件操作函数,具有跨平台和可移植的能
21、力有跨平台和可移植的能力有跨平台和可移植的能力有跨平台和可移植的能力 非缓冲型文件系统非缓冲型文件系统非缓冲型文件系统非缓冲型文件系统不会自动设置文件缓冲区,缓冲区需由程序员自己设定不会自动设置文件缓冲区,缓冲区需由程序员自己设定不会自动设置文件缓冲区,缓冲区需由程序员自己设定不会自动设置文件缓冲区,缓冲区需由程序员自己设定非缓冲型文件系统没有文件指针,它使用称为文件号的非缓冲型文件系统没有文件指针,它使用称为文件号的非缓冲型文件系统没有文件指针,它使用称为文件号的非缓冲型文件系统没有文件指针,它使用称为文件号的整数来标识文件整数来标识文件整数来标识文件整数来标识文件2023/1/1615/4
22、113.2文件的打开和关闭文件的打开和关闭 下面介绍的函数均定义在下面介绍的函数均定义在下面介绍的函数均定义在下面介绍的函数均定义在中中中中 FILE*fopen(FILE*fopen(constconst charchar*filename,*filename,constconst charchar*mode);*mode);FILE*fp=fopen(C:CONFIG.SYS,rw);FILE*fp=fopen(C:CONFIG.SYS,rw);filenamefilename是文件名是文件名是文件名是文件名 包含路径。如果不含路径,表示打开当前目录下的文件包含路径。如果不含路径,表示打开
23、当前目录下的文件包含路径。如果不含路径,表示打开当前目录下的文件包含路径。如果不含路径,表示打开当前目录下的文件 modemode是打开方式是打开方式是打开方式是打开方式 常用为常用为常用为常用为rr、ww、rwrw和和和和aa,分别表示只读、只写、读写和添加,分别表示只读、只写、读写和添加,分别表示只读、只写、读写和添加,分别表示只读、只写、读写和添加 rbrb表示只读二进制文件表示只读二进制文件表示只读二进制文件表示只读二进制文件 返回值为指向此文件的指针,留待以后使用返回值为指向此文件的指针,留待以后使用返回值为指向此文件的指针,留待以后使用返回值为指向此文件的指针,留待以后使用 如果打
24、开失败,返回值为如果打开失败,返回值为如果打开失败,返回值为如果打开失败,返回值为NULLNULL2023/1/1616/41文件打开方式(文件打开方式(文件打开方式(文件打开方式(modemode):):):):对应二进制文件对应二进制文件对应二进制文件对应二进制文件对应文本文件对应文本文件对应文本文件对应文本文件“r”r”只读只读只读只读 必须是已存在的文件必须是已存在的文件必须是已存在的文件必须是已存在的文件“w”w”只写只写只写只写 不论该文件是否存在,都新建一个文件不论该文件是否存在,都新建一个文件不论该文件是否存在,都新建一个文件不论该文件是否存在,都新建一个文件“a”a”追加追加
25、追加追加 向文本文件尾增加数据,该文件必须存在向文本文件尾增加数据,该文件必须存在向文本文件尾增加数据,该文件必须存在向文本文件尾增加数据,该文件必须存在“r+”r+”读写读写读写读写 打开一个已存在的文件,用于读写打开一个已存在的文件,用于读写打开一个已存在的文件,用于读写打开一个已存在的文件,用于读写“w+”w+”读写读写读写读写 建立一个新文件,可读可写建立一个新文件,可读可写建立一个新文件,可读可写建立一个新文件,可读可写“a+”a+”读写读写读写读写 向文件尾追加数据,也可读向文件尾追加数据,也可读向文件尾追加数据,也可读向文件尾追加数据,也可读 “rb”rb”“wb”wb”“ab”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 PPT 课件 13 文件 操作
限制150内