C语言程序设计教程(四)ppt233.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计教程(四)ppt233

C语言程序设计教程(四) 第10章 文 件 所谓“文件”(file)是指计算机外部存储介质(磁盘、磁带等)上建立的数据集合。这个数据集有一个名称,叫做文件名。 本章主要介绍文件的基本操作常识,以及文件操作的相关函数。 10.1 文本流和二进制流 在C中引入了流(stream)的概念。它将数据的输入输出看作是数据的流入和流出,这样不管是磁盘文件或者是物理设备(如:打印机、显示器、键盘等),都可看作一种流的源和目的,视他们为同一种东西,而不管其具体的物理结构体,即对他们的操作就是数据的流入和流出。这种把数据的输入、输出的操作对象,抽象化为一种流,而不管它的具体结构体的方法很有利于编程,而涉及流的输出操作函数可用于各种对象,与其具体的实体无关,即具有通用性。 在C中流可分为两大类,即文本流(text?stream)和二进制流(binary?stream)。 所谓文本流是指在流中流动的数据是以字符形式出现的。在文本流中,\n被换成回车CR和换行LF的代码0xDH和0xAH。而当输出时,则0xDH和0xAH被换成\n。 二进制流是指流动的是二进制数字序列,若流中有字符,则用一个字节的二进制ASCII码表示,若是数字,则用一个字节的二进制数表示。在流入流出时,对\n符号不进行变换。 10.1 文本流和二进制流(续) 例如2001这个数,在文本流中用其ASCII码表示为: 共占4字节。而在二进制流中则表示为11010001??用十六进制就是07D1。只占两字节。 由此看出,二进制流比文本流节省空间,且不用进行对\n的转换,这样可以大大加快流的速度,提高效率。因而,对于含有大量数字信息的数字流,可以采用二进制流的方式进行存储;对于含有大量字符信息的流,则采用文本流的方式进行存储。 10.2 文件FILE的数据结构体 typedef struct { short level; unsigned flags; char fd; unsigned char hold; short bsize; unsigned char *buffer; unsigned char *curp; unsigned istemp; short token; }FILE; 10.2 文件FILE的数据结构体(续) 这是C语言中使用的声明(在stdio.h文件中),不同的C编译器,可能使用不同的声明,但基本含义变化不会太大。 flags:?是一个10位的标志字,其具体含义如下: ??????? 位??????代表符号??????? 含义 ??????? 0???????? _F_READ???????? 读 ??????? 1????????? _F_WRIT????? ??? 写 ???????? 2???????? _F_BUF????????? 由fclose释放缓冲区 ???????? 3????????? _F_LBUF???????? 行缓冲 ???????? 4????????? _F_ERR???????? ? 出错标志 ???????? 5????????? _F_EOF????????? EOF文件尾标志 ???????? 6????????? _F_BIN????????? 二进制方式 ???????? 7???????? _F_IN?????????? 在进行输入 ???????? 8????????? _F_OUT???????? ? 在进行输出 ???????? 9????????? _F_TERM???????? 文件是一个终端 10.2 文件FILE的数据结构体(续) 其他各字段内容以及flags字段内各位所表示的功能,请参照其他一些资料。 注意:不要把文件指针和FILE结构体指针混为一谈,它们代表两个不同的地址。文件指针指出了对文件当前读写的数据位置,而FILE结构体指针是指出了打开文件所对应的FILE结构体在内存中的地址,这个指针它实际本身也包含了文件指针的信息。流指针中的各字段是供C语言内部使用的,用户不应该存取它的任何字段。 10.3.1 文件的打开(fopen()函数) fopen()函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) ; 其中: 文件指针名必须是被说明为FILE 类型的指针变量; 文件是被打开文件的文件名; 使用文件方式是指文件的类型和操作要求; 文件名是字符串常量或字符串数组。 10.3.1 文件的打开(fopen()函数) (续) 例如: FILE *fp; fp=(file.a,r); 其意义是:在当前目录下打开文件file.a,只允许进行读操作,并使文件指针fp

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档