- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hy第8章 文件
* 重点:1、文件指针 2、文件的打开 3、文件的关闭 4、文件的读写操作 难点:文件的存储与定位 1、文件指针: 每个被使用的文件都在内存中开辟了一个区,存放着文的内容等相关信息。系统将这些信息保存在一个结构体变量中。 这个结构体是系统定义的,包含在头文件“stdio.h中,我们使用时不需另外定义,只要在程序开始写上#includestdio.h即可。 系统为该结构体类型取了一个别名FILE(注意大写) 对文件的操作实际上就是对FILE结构体中的信息进行处理,一般定义一个指向文件类型(FILE)的指针来进行。 2、文件的打开 FILE *fp; fp=fopen(“文件名”,“打开文件的方式”); 文件名需要注意: 1、作为字符串,若直接写,则需加上双引号。 2、若先用scanf接收该字符串,则直接写该字符串的名字。 3、若文件不在当前目录下,则需写出绝对路径,系统才能找到该文件。 例:打开文件,若成功则打印成功的信息,若不成功,则退出。(e12_1.c) #includestdio.h main( ) { FILE *fp; if( (fp=fopen(a:\\aa.txt,r))= =NULL) { printf(\nCant open this file.); exit(0); } else printf(\nOpen success!); } 双引号中两个反斜杠才表示一个反斜杠。(e12_4.c) 例:打开文件,若成功则打印成功的信息,若不成功,则退出。(e12_2.c) #includestdio.h main( ) { FILE *fp; char *s; printf(\nEnter file name:); scanf(%s,s); if( (fp=fopen( s , r))= =NULL) { printf(\nCant open this file.); exit(0); } else printf(\nOpen success!); } 向该文件的末尾写(追加)数据。避免新加入的内容覆盖掉文件中原有的内容。 “a”(追加) 只能对该文件进行写的操作,不能读出文件内容。该文件若不存在,则系统在打开时新建一个以指定名命名的文件,否则,写入时新的内容会将以前文件中的内容覆盖。 “w”(只写) 只能对已存在的文件进行读的操作,不能修改。 “r”(只读) 含义 文件使用方式 3、文件的关闭: 在使用完一个文件后应该将它关闭,以防止它被误用。 fclose(文件指针变量名); #includestdio.h main( ) { FILE *fp; if( (fp=fopen(a:\\aa.txt,r))= =NULL) { printf(\nCant open this file.); exit(0); } else printf(\nOpen success!); fclose(fp); } 4、文件的读写: (1)fputc(ch,fp):将一个字符ch写到指针fp指向的磁盘文件中去。 #includestdio.h /*e12_3.c*/ main( ) { FILE *fp; char ch; if((fp=fopen(d:\\hr\\a.txt,w))= =NULL) { printf(\nCant open this file!); exit(0); } printf(\nEnter character:); ch=getchar( ); fputc(ch,fp); fclose(fp); } (2)fgetc(fp):从指针fp指向的文件中读出一个字符。 #includestdio.h /*e12_5.c*/ main( ) { FILE *fp; char ch; if((fp=fopen(d:\\hr\\a.txt,wr))= =NULL) { printf(\nCant open this file!); exit(0); } printf(\ncharacter:); ch=fgetc(fp); /*读出的字符赋给ch*/ putchar(ch); /*
文档评论(0)