- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 将文件输入输出 11.1 C文件概述 文件是存储在外部介质(磁盘等)上的数据的集合。即:数据是以文件的形式存储在外部介质上的。 操作系统以文件为单位对数据进行管理;C语言中,文件以字符(字节)为单位对文件进行存取。(文件被看作是一个由字符(字节)组成的序列!也称“流式文件”) 文件的分类 按存储介质: 普通文件(磁盘文件):存储介质文件(磁盘、磁带等) 设备文件:非存储介质(键盘、显示器、打印机等) 按数据的组织形式: 文本文件: ASCII文件,每个字节存放一个字符的ASCII码 二进制文件:数据按其在内存中的存储形式原样存放 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区 11.2 文件类型指针 缓冲文件系统为每个正使用的文件在内存开辟文件信息区 文件信息用系统定义的名为FILE的结构体描述 该结构体类型是系统定义的,包含在stdio.h中,取名为FILE。 “文件指针”是保存文件系统具体信息的一个结构体类型变量。 如: typedef struct { int_fd; /*文件号*/ int_cleft; /*缓冲区中剩下的字符*/ int_mode; /*文件操作模式*/ char *_nextc; /*下一个字符位置*/ char_buff; /*文件缓冲区位置*/ }FILE; 文件类型指针 指针变量说明: FILE *fp; 用法: 文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件 文件关闭后,它的文件结构体被释放 11.3 文件的打开和关闭 对文件处理的一般过程: 打开文件-读/写文件-关闭文件 文件的打开(fopen函数) 文件的关闭(fclose函数) 文件的打开函数fopen( ): fopen()函数为编译系统提供以下信息: 需要打开的文件名 使用文件的方式(读还是写等) 让哪个指针变量指向被打开的文件 程序中,fopen()函数的调用形式: FILE *指针变量名; 指针变量名=fopen(文件名,使用方式); 功能:按指定方式打开文件 返值:正常打开,为指向文件结构体的指针;打开失败,返回0 使用文件方式及符号含义: 说明: (1)用“r”方式打开的文件只能用于向计算机输入,不能用作向文件输出数据,且该文件已经存在。 (2)用“W”方式打开的文件只能用于向该文件输出(写)数据,不能用来向计算机输入。若文件不存在,则建立新文件;若已存在,则打开时将删除原有数据,进行重新写入。 (3) 如不希望删除原有数据而只在文件末尾添加新数据,应该用“a”方式来打开该文件。 (4) 用“r+”、“w+”、“a+”方式打开的文件既可以输入也可以输出数据。 (5) 如果不能实现“打开”任务,fopen函数将返回空指针NULL(NULL在stdio.h文件中已被定义为0)。 系统自动打开和关闭三个标准文件: stdin:标准输入文件(只读),指向终端输入设备(键盘)。 stdout:标准输出文件(只写),指向终端输出设备(显示器)。 stderr:标准错误输出文件(读/写),指向终端输出设备(显示器)。 文件关闭fclose 作用:使文件指针变量与文件“脱钩”,释放文件结构体和文件指针 fclose函数的调用形式: fclose(文件指针); 1、若执行fopen函数时发生错误,则函数的返回值是 A) 地址值 B) 0 C) 1 D) EOF 2、正常执行文件关闭操作时,fclose函数的返回值是 A) -1 B) TRUE C) 0 D) 1 11.4 文件的读写 (1)字符I/O: fputc与fgetc fputc 函数原型:int fputc(int c, FILE *fp) 功能:把一字节代码c写入fp指向的文件中 返值:正常,返回c;出错,为EOF (2)数据块I/O: fread与fwrite 函数原型: (3)格式化I/O: fprintf与fscanf 函数原型: 11.5 文件的定位 11.5 文件的定位 11.5 文件的定位 11.5 文件的定位 11.5 文件的定位 11.5 文件的定位 11.6 出错的检测 11.6 出错的检测 11.7 文件输入输出小结 11.7 文件输入输出小结 11.8 常见错误分析 (1)使用文件时忘记打开或打开方式与使用情况不匹配 11.8 常见错误分析 (2)在打开文件时,指定的文件名找不到 11.8 常见错误分析 (3)忘记关闭文件,虽然系统会自动关闭所用文件,但可能会丢失数据,因此必须在用完
您可能关注的文档
- 高英lesson 2. Hiroshima-the liveliest city in Japan.ppt
- 高财第3章__非货币性资产交换.ppt
- 高速公路中心试验室6月例会.pptx
- 高速公路路面施组设计.doc
- 高速铁路工地试验室建设方案.doc
- 高考物理曲线运动1 Word版含答案.doc
- 高考百题9氧族元素.doc
- 高铁路基CFG方案试桩(一).doc
- 高频电子线路实验报告实验三.doc
- 高频实验4.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)