网站大量收购独家精品文档,联系QQ:2885784924

第10章+文件重点.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. clearerr函数 它的作用是使文件错误标志和文件结束标志置为0。假设在调用一个输入输出函数时出现错误,ferror函数值为一个非0值。在调用clearerr(fp)后,ferror(fp)的值变成0。 只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数,或任何其它一个输入输出函数。 第10章 文件 10.1 C文件概述 文件按组织形式可分为ASCII文件和二进制文件。 ASCII文件又称文本文件(text),它的每一个字节放一个ASCII代码,代表一个字符。 二进制文件把内存中的数据按其在内存中的形式原样输出到磁盘。 如果一个整型数10000在内存中占2个字节(整型数占2字节),如果按ASCII输出,每一个数字是一个字符,共5个字符,每个字符一个字节,共占5个字节。 000010111000101110011000000110000ASCII形式 二进制形式 内存中的形式 1 0 0 0 用ASCII码形式输出与字符一一对应,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于字符输出。但占空间较大,且要花费转换时间。用二进制形式输出,可以节省存储空间和时间,但一个字节并不代表一个字符,不能直接输出字符。一般中间结果以二进制输出。 一个C文件就是一个字节流或二进制流,而不考虑记录的界限。在C语言中对文件的存取是以字节为单位的。输入和输出数据流的开始和结束仅受程序控制而不受物理符号控制。这种文件叫做流式文件。 老版本的C 对文件有两种处理方法: 1. 缓冲文件处理系统:系统自动地在内存区为每一个正在使用的文件名开辟一个缓冲区。从内存向磁盘输出的数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘。如果从磁盘向内存读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(给程序变量)。 2. 非缓冲区文件系统:系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。 新的ANSI C标准不采用非缓冲区文件系统。但旧的标准仍然存在。 文件类型指针 对于缓冲区文件系统,每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息。(如文件名字、文件状态及文件当前位置等)。这些信息是保存在一个结构体类型的变量中的。该结构体类型由系统定义,取名FILE。可用“FILE”定义文件指针如: FILE *fp; /* fp是一个指向文件的指针变量*/ 可以用fp指向某一个文件的结构体变量,从而通过该结构体变量中的信息访问该文件。即通过文件指针变量能够找到与它相关的文件。 10.2 文件的打开与关闭 1.? 文件的打开(fopen函数) fopen 函数的调用方式: FILE *fp; fp=fopen(文件名,使用方式); fp=fopen(“file1”,”r”) /*以只读方式打开文件,返回文件file1的指针给fp. 说明: 1.“r”打开的文件只能读,且应是已存在的文件。 2.“w”打开的文件只能写,且是建立新文件,若原来有同名文件,删除重建。 3.带“+”的使用方式,都是既读又写。 4.如果不能实现“打开”的任务,fopen函数将带回一个错误信息。出错的原因可能是用“r”方式打开的文件不存在,或磁盘满,或磁盘坏。此时fopen函数将带回一个空指针值NULL(NULL在stdio.h中定义为0)。 常用下面方法打开文件: if ((fp = fopen(“file1”, “r”))==NULL) { printf(“cnanot open this file\n”): exit(0);} exit()函数的作用是关闭所有文件,终止正调用的过程。 5.在程序开始运行时,系统自动打开三个标准文件:标准输入、标准输出、标准出错输出。通常这三个文件都与终端联系。因此以前我们所用到的从终端输入或输出,都不需要打开终端文件。系统自动定义了三个文件指针stdin、stdout和stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。如果程序中指定要从stdin所指的文件输入数据,就是指从终端键盘输入。 2. 文件的关闭(fclose函数) 使用完一个文件后应该关闭它,以防止它在被误用或数据丢失。 关闭文件时,先把缓冲区中的数据输

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档