- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 指针与文件 第七章 指针与文件 第三节 C文件概述 几点说明: ① 文件使用方式由r、w、a、b、+五个字符组成,各字符的含义是: 打开后可同时读写数据 + : 二进制文件 b : 在文件尾部追加数据 a : 写文件 w : 读文件 r : 作 用 字符 ② 凡用“r”方式打开的文件,该文件必须已经存在,且只能从该文件读出数据。 ③ 凡用“w”方式打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名新建该文件,若打开的文件已经存在,则覆盖该文件。 ④ 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。 第三节 C文件概述 ⑤ 在打开一个文件时,如果出错,open()函数将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。NULL是个符号常量,已在stdio.h中被定义成0。 因此常用以下程序段打开文件: fp = fopen(c:\\hzk16, rb); if ( fp == NULL ) { printf(\nError on open c:\\hzk16 file!); getch(); exit(1); } 第三节 C文件概述 ⑥ 将文件中所有字符逐一读入内存,常用如下while循环实现: while ( !feof(fp) ) { ch = fgetc(fp); …… } ⑦ 对文件读写一个字符,文件指针自动增1,勿需再使用单独的fp++语句。 feof()是文件结束函数,当文件指针指到文件结束符时,其值为1,否则其值为0。文件结束符对应的符号常量是EOF,它在头文件stdio.h中被定义为-1。 文件一旦使用完毕,须关闭文件。关闭文件作用之一是将缓冲区中的数据存盘,这样数据才不丢失。 fclose函数调用的一般形式是: 第三节 C文件概述 二、文件的关闭 fclose(文件指针); 正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生。一个关闭语句只能关闭一个文件。 第四节 文件的读写 读文件是指将文件从磁盘读入内存,写文件是指将内存中的数据保存到磁盘。读文件和写文件是一对相反的操作,数据只有读入内存赋给内存变量。 内存 从键盘到内存的函数 scanf(),gets(),getch() getche(),getchar() 从文件到内存的函数 fscanf(),getc() fread(),fgets() 从内存到显示器的函数 printf(),puts() putch(),putchar() 从内存到磁盘文件的函数 fprintf(),fputc() fwrite(),fputs() 第四节 文件的读写 字符及字符串读写函数常用的有4个:fgetc、fputc、fgets和fputs。 fputs(str,fp); 将内存数组str的值写入fp指向的文件中保存 fputs() fgets(str,n,fp); 从fp指向的文件中读取n-1个字符赋给内存数组str fgets() fputc(fp,ch); 将内存变量ch的值写入fp指向的文件中保存 fputc() 成功返回0 否则返回非0 ch = fgetc(fp); 从fp指向的文件中读取一个字符赋给内存变量ch fgetc() 返回值 格 式 功 能 函数名 一、字符与字符串读写函数 第四节 文件的读写 【例7-6】从键盘上输入若干个字符,逐个将其存入文件“c:\\myfile-1.txt”中,直到遇到输入的字符是‘#’号为止。 【简要分析】 C盘上的文件myfile-1.txt以前是不存在的,它是运行程序时新创建的,故文件使用方式应选择写方式“w”。根据文件操作的一般步骤。 关闭文件,结束 输入一个字符到ch中 将ch写入文件中 当ch!=’#’时 打开指定文件 输入文件名filename 定义变量ch,filename 开始,设置环境 用N-S流程图描述的程序逻辑: 第四节 文件的读写 参考源代码: /*例7-6,7-6.c*/ #includestdio.h void main() { FILE *fp; char ch; fp = fopen(“c:\\myfile-1.txt”, w); /*打开文件*/ ch = getchar(); /*输入一个字符*/ while ( ch != # ) { fputc(ch, fp); /*写一个字符到文件*/ putchar(
文档评论(0)