《C语言程序设计》课程教学课件(PPT讲稿)第八章 文件

第八章 文件
第八章 文件

■C文件概述 ▣文件类型指针 ·文件的打开和关闭 ■文件的读写 ■文件的定位 ■出错的检测 ■文件的输入输出小结
◼ C文件概述 ◼ 文件类型指针 ◼ 文件的打开和关闭 ◼ 文件的读写 ◼ 文件的定位 ◼ 出错的检测 ◼ 文件的输入输出小结

(一)C文件概述
(一)C文件概述

C文件概述 文件(le)是程序设计中一个重要的概念。 所谓“文件”一般指存储在外部介质上数据的集合。 一批数据是以文件的形式存放在外部介质(如磁盘)上的。 操作系统是以文件为单位对数据进行管理的,也就是说,如果想 找存在外部介质上的数据,必须先按文件名找到所指定的文件, 然后再从该文件中读取数据。要向外部介质上存储数据也必须先 建立一个文件(以文件名标识),才能向它输出数据。 以前各章中所用到的输入和输出,都是以终端为对象的,即从终 端键盘输入数据,运行结果输出到终端上。 从操作系统的角度看,每一个与主机相联的输入输出设备都看作 是一个文件。例如,终端键盘是输入文件,显示屏和打印机是输 出文件
C文件概述 文件(file)是程序设计中一个重要的概念。 所谓“文件”一般指存储在外部介质上数据的集合。 一批数据是以文件的形式存放在外部介质(如磁盘)上的。 操作系统是以文件为单位对数据进行管理的,也就是说,如果想 找存在外部介质上的数据,必须先按文件名找到所指定的文件, 然后再从该文件中读取数据。要向外部介质上存储数据也必须先 建立一个文件(以文件名标识),才能向它输出数据。 以前各章中所用到的输入和输出,都是以终端为对象的,即从终 端键盘输入数据,运行结果输出到终端上。 从操作系统的角度看,每一个与主机相联的输入输出设备都看作 是一个文件。例如,终端键盘是输入文件,显示屏和打印机是输 出文件

C文件概述 在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘 上存放起来,以后需要时再从磁盘中输入到计算机内存。这就要角到磁盘文件。 C语言把文件看作是一个字符(字节的序列,即由一个一个字符(字节的数据顺 序组成。 根据数据的组织形式,可分为ASCII文件和二进制文件。 ASCII文件又称文本(text)文件,它的每一个字节放一个ASCⅡ代码,代表一个字 符。 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 如果有一个整数10000, 在内存中占4个字节,如果按ASCIⅡ码形式输出,则占5 字节,而按二进制形式输出,在磁盘上只占4个字节。用ASCI码形式输出与 美无彩汤颜 一一对应, 二个字节代表一个字符, 个字节代表一个字符,因而便于对 符进行逐个处理,也便于输出宝符 。但一 般点存储空间较多,而耳雾花费转 进制形式输出数值,可等省 外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式 般中闻结果数据需要暂时保存在外存上以后又需要输入到内存的,常用二进 制受件保存
C文件概述 在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘 上存放起来,以后需要时再从磁盘中输入到计算机内存。这就要用到磁盘文件。 C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺 序组成。 根据数据的组织形式,可分为ASCII文件和二进制文件。 ASCII文件又称文本(text)文件,它的每一个字节放一个ASCII代码,代表一个字 符。 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 如果有一个整数10000,在内存中占4个字节,如果按ASCII码形式输出,则占5 个字节,而按二进制形式输出,在磁盘上只占4个字节。用ASCII码形式输出与 字符一一对应,一个字节代表一个字符,一个字节代表一个字符,因而便于对 字符进行逐个处理,也便于输出字符。但一般占存储空间较多,而且要花费转 换时间(二进制形式与ASCII码间的转换)。用二进制形式输出数值,可以节省 外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。 一般中间结果数据需要暂时保存在外存上以后又需要输入到内存的,常用二进 制文件保存

C文件概述 由前所述, 个C文件是一个字节流或二进制流。它把 数据看作是一连串的字符(字节,而不考虑记录的界限。 换句话说,C语言中文件并不是由记录record)组成的。 在C语言中对文件的存取是以字符(字节为单位的。输入 输出的数据流的开始和结束仅受程序控制而不受物理符 号(如回车换行符控制。 也就是说,在输出时不会自动增加回车换行符以作为记 录结束的标志,输入时不以回车换行符作为记录的间隔 (事实上C文件并不由记录构成)。我们把这种文件称为流 式文件。C语言允许对文件存取一个字符,这就增加了 处理的灵活性。 在C语言中,没有输入输出语句,对文件的读写都是用 库函数来实现的。ANSI规定了标准输入输出函数,用它 们对文件进行读写
C文件概述 由前所述,一个C文件是一个字节流或二进制流。它把 数据看作是一连串的字符(字节),而不考虑记录的界限。 换句话说,C语言中文件并不是由记录(record)组成的。 在C语言中对文件的存取是以字符(字节)为单位的。输入 输出的数据流的开始和结束仅受程序控制而不受物理符 号(如回车换行符)控制。 也就是说,在输出时不会自动增加回车换行符以作为记 录结束的标志,输入时不以回车换行符作为记录的间隔 (事实上C文件并不由记录构成)。我们把这种文件称为流 式文件。C语言允许对文件存取一个字符,这就增加了 处理的灵活性。 在C语言中,没有输入输出语句,对文件的读写都是用 库函数来实现的。ANSI规定了标准输入输出函数,用它 们对文件进行读写

C文件概述 有两种对文件的处理方法: 一种叫“缓冲文件系统”: 一种叫“非缓冲文件系统”。 所谓缓冲文件系统是指系统自动地在内存区为每一个正 在使用的文件名开辟一个缓冲区。从内存向磁盘输出数 据必须先送到内存中的缓冲区,装满缓冲区后才一起送 到磁盘去。如果从磁盘向内存读入数据,则一次从磁盘 文件将一批数据输入到内存缓冲区充满缓冲区),然后 再从缓冲区逐个地将数据送到程序数据区(给程序变量)。 如下图所示。缓冲区的大小由各个具体的C版本确定, 一般为512字节
C文件概述 有两种对文件的处理方法: 一种叫“缓冲文件系统” ; 一种叫“非缓冲文件系统” 。 所谓缓冲文件系统是指系统自动地在内存区为每一个正 在使用的文件名开辟一个缓冲区。从内存向磁盘输出数 据必须先送到内存中的缓冲区,装满缓冲区后才一起送 到磁盘去。如果从磁盘向内存读入数据,则一次从磁盘 文件将一批数据输入到内存缓冲区(充满缓冲区),然后 再从缓冲区逐个地将数据送到程序数据区(给程序变量)。 如下图所示。缓冲区的大小由各个具体的C版本确定, 一般为512字节

输出文件缓冲区 磁盘 程序数据区 输出 输出 输入文件缓冲区 输入 输入

C文件概述 离提波蝶浩高露乔务朵塑奔接易歪确定大小 在UNX系统下,用缓冲文件系统来处理文本文件,用 非缓冲文件系统处理二进制文件。 用缓冲文件系统进行的输入输出又称为高级(或高层)磁 盘输入输出(高层I/O)。 用非缓冲文件系统进行的输入输出又称为低级(低层)输 入输出系统。 ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲 文件系统。即既用缓冲文件系统处理文本文件,也用它 来处理三进制文件。也就是将缓冲文件系统扩充为可以 处理二进制文件。 本章只介绍ANSI C规定的文件系统以及对它的读写
C文件概述 所谓“非缓冲文件系统”是指系统不自动开辟确定大小 的缓冲区,而由程序为每个文件设定缓冲区。 在UNIX系统下,用缓冲文件系统来处理文本文件,用 非缓冲文件系统处理二进制文件。 用缓冲文件系统进行的输入输出又称为高级(或高层)磁 盘输入输出(高层I/O)。 用非缓冲文件系统进行的输入输出又称为低级(低层)输 入输出系统。 ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲 文件系统。即既用缓冲文件系统处理文本文件,也用它 来处理二进制文件。也就是将缓冲文件系统扩充为可以 处理二进制文件。 本章只介绍ANSI C规定的文件系统以及对它的读写

(二)文件类型指针
(二)文件类型指针
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学课件(PPT讲稿)第五章 函数及预处理.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第三章 程序控制流.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符与表达式、位运算.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第一章 C语言概述、算法介绍.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第四章 选择结构.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第六章 数组.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第八章 编译预处理、第九章 指针、第十章 结构体、共用体及枚举类型、第十一章 文件.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第五章 循环结构.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第二章 数据类型、运算符及表达式.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第三章 最简单的C.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第七章 函数.ppt
- 《C语言程序设计》课程授课教案(PPT教学课件)第一章 C语言概论.ppt
- 清华大学:《C语言程序设计》课程PPT教学课件(谭浩强教材第二版,共七章).ppt
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第四章 C程序流程设计.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第六章 函数.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第五章 数组.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第七章 指针.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第二章 顺序结构程序设计.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第三章 数据输入与输出.pps
- 呼和浩特职业学院:《C/C++程序设计》课程电子教案(PPT课件)第一章 程序的灵魂-算法.pps
- 《C语言程序设计》课程教学课件(PPT讲稿)第六章 指针.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第四章 数组.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第七章 结构体与共用体.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第01章 C语言概述.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第02章 数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第03章 顺序结构程序设计.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第04章 选择结构程序设计.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第05章 循环结构程序设计.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第06章 数组.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第07章 函数.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第08章 编译预处理.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第09章 指针.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第10章 结构与链表.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第11章 位运算.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第12章 文件.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第1章 C语言概述.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 程序的灵魂——算法.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 最简单的c程序设计——顺序程序设计.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt