- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
}fclose(fp);if((fp=fopen(test.txt,r))==NULL)/*用读方式打开文本文件test.txt*/ { printf(不能打开文件.\n); exit(0); }ch1=fgetc(fp);/将字符从文件指针fp所指的文件中读出*/while(ch1!=EOF)/*判断是否到了文件的末尾*/{putchar(ch1);ch1=fgetc(fp);}printf(\n);fclose(fp);}【说明】(1)程序中首先以写的方式打开文件,每输入一个字符,文件内部位置指针向后移动一个字节。写入完毕,该指针已经指向文件末尾。如果要把文件从头读出,必须先关闭文件,再将文件以读的方式打开。(2)第二个while循环每执行一次,fgetc函数就从fp所指的文件中读出一个字符给字符变量ch1,并且用putchar函数将它显示在屏幕上。二、字符串的读写函数fputs和fgets1、fgets函数它的功能是从指定的文件中读一个字符串到字符数组中。函数的调用方式为:fgets(char*str,intn,FILE*fp);其中str为读取到的字符串的地址,可以是指针,也可以是数组,n为限定每次读取的字符个数,fp为指定读取的文件指针。返回值:从fp所指向的文件当前读写位置开始,最多读入(n-1)个字符(包括换行符),在读入的最后一个字符后加上字符串结束标志\0。正常返回值为str的首地址,当读到文件末尾或出错时,返回NULL。例如:fgets(str,n,fp);其意义是从fp所指的文件中读取n-1个字符送入字符数组str中。2、fputs函数它的功能是是向指定的文件写入一个字符串。函数的调用方式为:fputs(char*str,FILE*fp);其中str为指定输出的字符串,它可以是指针、数组名或字符串,fp为指定的输出文件。返回值:正常返回值为所输出的字符串中最后一个字符的ASCII值,如果向文件写入字符串不成功,则返回值为EOF。例如:fputs(wxm,fp);其意义是把字符串wxm写入fp所指的文件中。【案例9-3】编制一个程序实现文本文件的复制功能。分析:将文件1的内容复制到文件2中,通过while循环每次使用fgets函数从文件1中读取80个字符写入文件2中,直到遇见文件1的结束标志EOF。includestdio.hmain(){FILE*fp1,*fp2;charstring[81];/*最多保存80个字符,外加一个字符串结束标志*/charfile1[20],file2[20];printf(输入文件名1:);scanf(%s,file1);printf(输入文件名2:);scanf(%s,file2);if((fp1=fopen(file1,r))==NULL)/*以只读方式打开文件1*/{printf(文件不能读);exit(0);}if((fp2=fopen(file2,w))==NULL)/*以写方式打开文件2*/{printf(文件不能写);exit(0);}while(fgets(string,81,fp1)!=NULL)/*如果未读到文件末尾(EOF),函数不会返回NULL,继续循环(执行循环体)*//*从fp1所指向的文件一次读80个字符,遇换行或EOF,提前带回字符串*/printf(%s,string);/*打印字符串*/fputs(string,fp2);/*将字符串写入fp2所指向的文件*/fclose(fp1);/*关闭文件*/fclose(fp2);}【案例9-4】现在我们将在前面几章编写的“学生成绩管理系统”中的输入函数shuru()做一些小的修改,将学生的各项信息从键盘输入后,直接存放在一个文本文件---成绩统计.txt里,以方便我们进行成绩的管理。#defineN1000#includestdio.h#includestdlib.hstructscore{intmingci;charxuehao[8];charmingzi[20];floatscor[6];}data,info[1000];inti,j,k=0;chartemp[20],ch;FILE*fp;voidshuru(){chartemp[20],ch;chars[30];if((fp=fop
文档评论(0)