- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 对文件的输入输出 10.1 C文件的有关基本知识 10.1.1 什么是文件 10.1.2 文件名 文件标识包括三部分:(1)文件路径;(2)文件名主干;(3)文件后缀,也就是扩展名。 例如要找到一个叫abc.txt的文件,位置在C:\format\xyz目录下,这就是路径,而abc是文件名主名,.txt就是后缀。 10.1.3 文件的分类 文件的分类可以根据不同的角度进行不同的分类,从数据的组织形式,数据文件可以分为ASCII文件和二进制文件。 ASCII文件又称文本文件(Text File),每一个字节放一个字符的ASCII码。 二进制文件又称映像文件(Image File),数据在内存中的二进制形式不加转换地输出到外存,就是二进制文件,可以认为它就是存储在内存的数据的映像。 例如,我们有一个十六进制数据0X2345,如果存储到ASCII文件中去是这要存放的: 先将2的ASCII码:50存进去,显然已经占了一个字节,3的ASCII码51存进去……,所以在这个文件中,0X2345占4个字节。所以,如果用记事本打开文件,可以马上看到2345这几个字符。 如果将0X2345存放到二进制文件中去,则原封不动地将这个0X2345存进去,存进去后,显然只占2个字节,而且0x23高位在后,0X45低位在前,如果我们用记事本打开这个文件,则看不到0X23和0X45,记事本会默认将这两个十六进制数解释为ASCII码让我们看,我们将看到两个字符:0X23代表的字符35号字符:#,以及0X45代表的字符:E 10.1.4 文件缓冲区 由于内存的速度比硬盘快太多(大概是1000倍),而程序在运行过程中,经常要从硬盘上读、写数据,以写数据为例,如果要将100个整数写到硬盘上去,每次如果都真的将一个数据一个数据写到硬盘上去,则该程序会非常的慢。 于是,可以在硬盘和内存之间建立一个缓冲区(实际是一块专门划出来的内存),每次写一个数据,并没有真正地写到硬盘上去,而是写到这个缓冲区(Buffer)中去,所以速度没有降下来。而只有在以下几种情况下,才会真正地将数据写到硬盘上去: (1)缓冲区满 (2)用户要求,在C语言中有一个函数flush()命令将缓冲区中的数据写到硬盘上去 (3)关闭文件,使用close()函数 因此,我们在编程时,一般要养成一个良好的习惯,就是在最后一定要关闭已经打开的文件 10.1.5 文件类型指针 在C语言中,为了方便编程,有一个由C系统自动维护的“文件指针”,我们只需要使用,不用管其中的原理、过程等。 FILE,也是一个结构体类型,它被定义在stdio.h头文件中。 FILE指针里面有一个真实的指针,可以随着我们的读写自动向后、向前移动。 且对于我们编程来说,我们的眼睛里,只有这个FILE,没有别的可用。一旦要读写某个文件,我们需要打开这个文件,此时C就会返回这个文件的FILE指针,之后我们只需要操作这个指针就自然操作了这个文件。 通常需要用FILE来定义一个真实的文件指针: FILE* fp1; FILE* fp2; 10.2 打开与关闭文件 每一个文件要操作,C语言都规定,必须先打开它,且在打开它的同时,必须指明你要怎么操作(读、写)这个文件,且还要规定,你是以ASCII码形式还是以二进制形式来对待这个文件的。 10.2.1 用fopen函数打开数据文件 打开文件使用fopen函数,该函数的原型为: 函数名: fopen 功? 能: 打开一个流 用? 法: FILE *fopen(char *filename, char *type); 参数: (1)char* filename:是一个字符串,要打开的文件名,包括完整的路径,如果没有路径,则表明是想打开当前路径下的文件名,所谓当前路径,是指与此程序在同一个目录下。 (2)char* type:也是一个字符串,指出要怎么操作文件,且指出是文本文件或二进制文件 (3)返回值FILE*就是返回指向该文件的指针。 例如:要以二进制形式打开一个C:\program files\abc.txt文件,进行读和写,则可以: FILE* fp1; fp1=fopen(C:\\program files\\abc.txt, wb+); 至于参数type,可以使用以下值: 文件使用方式 含义 如果指定的文件不存在 r(只读) 只读一个文本文件,不能写 出错 w(只写) 只写一个文本文件,不能读 建立该文件名的新文件 a(只追加) 只追加一个文本文件,不能读 出错 rb(只读) 只读一个二进制文件,不能写 出错 wb(只写) 只写一个二进制文件,不能读 建立该文件名的新文件 ab(只追加) 只写一个二进制文件,不能写 出错 r+(读写) 读写一个文本文件 出错 w+(读写) 读写一
有哪些信誉好的足球投注网站
文档评论(0)