- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件笔记
C文件的有关基本知识L什么是文件
文件有不同的类型,在程序设计中,主要用到两种文件:
(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后 缀 为.exe)等。这种文件的内容是程序代码。
(2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程 中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。
(本章主要讨论的是数据文件)为了简化用户对输入输出设备的操作操作系统把各种设备都统一作为文件来处理。从操作 系统的角度看,每一个与主机相连的输入输出设备都看作一个文件。例如,终端键盘是输入 文件,显示屏和打印机是输出文件。
所谓“文件”一般指存储在外部介质上数据的集合。一批数据是以文件的形式存放在外部介 质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说如果想找存放在 外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向 外部介质上存储数据也必须先建立一个文件(以文件名作为标志),才能向它输出数据。
输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地 称为流,即数据流。流表示了信息从源到目的端的流动。文件是由操作系统进行统一管理的,C语言把文件看作一个字符(或字节)的序列,即由一个一个字符(或字节)的数据顺序组 成。一个输入输出流就是一个字符流或字节(内容为二进制数据)流。
C的数据文件由一连串的字符(或字节)组成,而不考虑行的界限.两行数据间不会自动加分 隔符,对文件的存取是以字符(字节)为单位的。输入输出数据流的开始和结束仅受程序控 制而不受物理符号(如回车换行符)控制.这就增加了处理的灵活性。这种文件称为流式文 件。
.文件名(文件标识)一个文件要有一个唯一的文件标识,以便用户识别和弓I用。
文件标识包括3局部:(1)文件路径;(2)文件名主干;(3)文件后缀。
文件路径表示文件在外部存储设备中的位置。如:
D : \CC\ temp \ filel. dat
文件路径文件名主干 文件后缀表示filel.dat文件存放在D盘中的CC目录下的temp子目录下面。
文件名主干的命名规那么遵循标识符的命名规那么。后缀用来表示文件的性质,如:doc (Word 生成的文件),txt (文本文件),dat (数据文件).c (C语言源程序文件),cpp (C++源程 序文件),for (FORTRAN语言源程序文件),pas (Pascal语言源程序文件).obj (目标文 件),exe (可执行文件).ppt (电子幻灯文件),bmp (图形文件)等。
.文件的分类根据数据的组织形式.数据文件可分为ASCII文件(文本文件)和二进制文件(映像文件)。数据 在内存中是以二进制形式存储的,如果不加转换地输出到外存,就是二进制文件,可以认为它
2.随机读写有了 rewind和fseek函数,就可以实现随机读写了。通过下面简单的例子可以了解怎样进 行随机读写。
文件检测函数.文件结束检测函数feof函数
调用格式:
feof(文件指针);功能:判断文件是否处于文件结束位置,如文件结束,那么返回值为1,否那么为0o 为了知道对文件的读写是否完成,只须看文件读写位置是否移到文件的末尾。
说明:在文件的所有有效字符后有一个文件尾标志。当读完全部字符后,文件读写位置标记 就指向最后一个字符的后面,即指向了文件尾标志。如果再执行读取操作,那么会读出-1(不要 理解为最后有一个结束字节,在其中存放了数值它只是一种处理方法)。文件尾标志用 标识符EOF(end of file)表示。EOF在stdio. h头文件中被定义为 例:
ch= fgetc(in); 〃从输入文件读入一个字符,赋给变量chwhile( !feof(in)) 〃如果未遇到输入文件的结束标志
{fpute(ch,out); 〃将ch写到输出文件
putchar(ch); 〃将ch显示到屏幕上
ch=fgetc(in);} 〃再从输入文件读人一个字符,赋给变量ch putchar( u\nn );用feof函数可以检测文件尾标志是否已被读取过。如果文件尼标志已被读出,那么表示文件 已结束,此时束of函数值为真(以1表示),否那么他of函数值为假(以0表示)。不要把feof函 数值的真⑴和假(0)与文件尾标志的假设值(-1)相混淆。前者为函数值,后者为尾标志的假设 值。
程序中的feof(in)用来判断in所指向的文件是否结束了。开始时显然没有读到文件尾标志, 故“feof(in)”为假,“ ! feof(in)”为真,所以要执行while循环体。直到读取完最后一个字符 并输出到磁盘文件和屏幕后,还再执行一次fgetc函数,即读取
文档评论(0)