1 / 26
文档名称:

第16章 不仅仅局限于内存——文件.ppt

格式:ppt   页数:26
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第16章 不仅仅局限于内存——文件.ppt

上传人:燕赵才子 2011/7/19 文件大小:0 KB

下载得到文件列表

第16章 不仅仅局限于内存——文件.ppt

文档介绍

文档介绍:第16章不仅仅局限于内存——文件
计算机是人类的优秀辅助工具,人依靠输入输出与其交互,在前面章节中,输入输出都是由printf函数和scanf函数来完成,完成的也只是极其简单的任务,所有的变量和数字什么的都是放在内存中,一旦断电,所有的数据都会丢失,有时,希望能将结果保存起来,下次开机时再使用,这就要用到外部介质和文件。
什么是文件
首先解决一个问题,“什么是外部介质”,外部介质的概念是针对内存来说的,首先想到的外部介质是硬盘和光盘等,但外部介质的概念比这宽泛得多,还包括一些输入输出设备,比如键盘、显示器以及打印机等。
文件
文件的准确定义为“存放在外部介质上的以文件名为标识的数据的集合”,凡是起到输入输出作用,与CPU直接或间接打交道的一组信息集合都是文件。
每个文件都以文件名为标识,I/O设备的文件名是系统定义的,如:
COM1或AUX——第一串行口,2——第二串行口,此外,4等
CON——控制台(console),键盘(输入用)或显示器(输出用)
LPT1或PRN——第一并行口或打印机
LPT2——第二并行口,还可能有LPT3等
NUL——空设备
磁盘文件可以由用户自己命名,但上述被系统(windows和dos下均是如此)保留的设备名字不能用作文件名,如不能把一个文件命名为CON(不带扩展名)(不带扩展名)。

流是一个动态的概念,可以将一个字节形象地比喻成一滴水,字节在设备、文件和程序之间的传输就是流,类似于水在管道中的传输,可以看出,流是对输入输出源的一种抽象,也是对传输信息的一种抽象。通过对输入输出源的抽象,屏蔽了设备之间的差异,使程序员能以一种通用的方式进行存储操作,通过对传输信息的抽象,使得所有信息都转化为字节流的形式传输,信息解读的过程与传输过程分离。
C语言中,I/O操作可以简单地看作是从程序移进或移出字节,这种搬运的过程便称为流(stream)。程序只需要关心是否正确地输出了字节数据,以及是否正确地输入了要读取字节数据,特定I/O设备的细节对程序员是隐藏的。
重定向
重定向是由操作系统来完成的,一般来说,标准的输出和输入设备通常指的是显示器和键盘,在支持重定向的操作系统中,标准输入输出能被替换,以DOS系统为例,看一段代码:
代码‑重定向测试程序Redirection
<----------------------------------------------文件名:------------------------------------------------>
#include <> /*使用printf要包含的头文件*/
#include <>
void main(void) /*主函数*/
{
printf("本段文字用来测试重定向"); /*输出提示信息*/
getch(); /*等待,按任意键继续*/
}
文件的处理形式--缓冲区和非缓冲区
C语言提供了两种处理文件的方式,分别为;
(1)缓冲文件系统
前面提及,C语言中的I/O操作可以简单地看作是从程序移进或移出字节,一般来说,外设的存取速度和CPU的工作速度间存在较大的差异,举例来说,如果CPU每输出一个字节,都要让磁盘写入一次,将会十分耗时,采用“缓冲区”能有效缓和这种矛盾,在内存中开辟一块专门的内存区域,当CPU写出的字节积攒到一定数量,再一次性写入磁盘。当需要从磁盘读入数据时,也在内存中开辟一块缓冲区,一次性从磁盘读入一块数据到该缓冲区中,让CPU慢慢取用,这样大大了提高程序的工作效率。
缓冲区的分配是由系统自动完成的,缓冲区的大小取决于所用C语言编译器,程序开发人员要做的是保证程序能正确输入输出字节信息。
(2)非缓冲文件系统。
非缓冲文件系统是指系统不自动为文件操作开辟缓冲区,但程序设计人员可根据需要自行开辟缓冲区。
文件的存储形式—文本形式或二进制形式
C语言将文件作为字节序列来对待,但从编码角度,或说从对字节信息的解释来看,文件有两种数据格式:文本形式或二进制形式。
文本形式中,字节是基本单位,字节中存放的字符的ASCII码,文本文件也称为ASCII码文件,这种形式便于对字符进行逐个处理,也便于输出显示,但需要的存储空间相比二进制形式往往要大一些。
二进制形式是把数据在内存中的表示形式照样搬到磁盘上,一般来说,二进制形式与字符不存在对应关系,可读性差一些,但节省存储空间,处理速度快。
C语言如何使用文件
文件的操作(从文件输入、向文件输出)不过是在标准输入输出(键盘)的基础上增加了些控制信息,从应用机理上两种情况应该说是一致的。
16

最近更新

骨软骨瘤标志物的表层分子表征研究 35页

高效代理重加密的密码学实现 33页

2024年安徽粮食工程职业学院单招职业倾向性测.. 40页

2024年宿州职业技术学院单招综合素质考试模拟.. 40页

2024年山东传媒职业学院单招职业适应性考试题.. 40页

2024年山东华宇工学院单招职业技能考试模拟测.. 41页

2024年山东外事职业大学单招职业技能测试模拟.. 38页

2024年山东旅游职业学院单招职业倾向性测试题.. 41页

2024年山东省日照市单招职业适应性考试题库完.. 40页

2024年山东省聊城市单招职业倾向性测试模拟测.. 39页

2024年山东轻工职业学院单招职业倾向性考试题.. 41页

2024年山西卫生健康职业学院单招综合素质考试.. 40页

2024年山西省大同市单招职业适应性测试模拟测.. 40页

2024年山西职业技术学院单招职业技能考试模拟.. 41页

2024年岳阳现代服务职业学院单招职业适应性测.. 39页

2024年川南幼儿师范高等专科学校单招职业适应.. 40页

2024年常州工程职业技术学院单招职业倾向性考.. 39页

2024年广东农工商职业技术学院单招职业适应性.. 38页

2024年广东水利电力职业技术学院单招职业适应.. 42页

2024年广东省汕头市单招职业倾向性考试题库汇.. 41页

2024年广东科贸职业学院单招综合素质考试题库.. 39页

2024年广东轻工职业技术学院单招职业适应性考.. 40页

2024年广州体育职业技术学院单招职业技能考试.. 38页

2024年广州民航职业技术学院单招职业倾向性考.. 38页

2024年广西体育高等专科学校单招综合素质考试.. 39页

2024年广西安全工程职业技术学院单招职业技能.. 41页

美团代运营业务委托合同 6页

新概念青少版2A各单元重点归纳 15页

足球竞彩项目招股说明书 7页

护理薪资计划书 28页