1、 d,num:%d,name:%sn”,studentsj.score,studentsj.num,&studentsj.stname); printf(”Min score: d,num:d,name:sn”,studentsk.score,studentsk。num,studentsk。stname); if(fclose(fp) printf(Can not close the file!n”); return 0;【练习122】请使用例89答电码加密函数对民吗字符串进行加密,改写例12-2。includestdio.h#includestruct sysuser char userna
2、me20; char password8;;void encrypt(char pwd); FILE *fp; int i; struct sysuser su; if(fp=fopen(”f12-2.txt,w)=NULL)File open error!n); for(i=1;i=Ach0) fseek(cfptr,size(logcount-1),SEEK_SET);log,size,1,cfptr); printf(”The last log is:logid:6ldnlogdate:-11snlognote:-15sn,log。logid,log.logdate,log。lognot
3、e); printf(”charge:-10.2lfnbalance:10。2lfn,log.charge,1og.balance); else printf(”no logs in file!/*添加新记录*/void AddNewLog(FILE cfptr) struct LogData log,lastlog; long logcount; printf(”Input logdate (format: 2006-0101): scanf(”%s,log.logdate);Input lognote: scanf(s,log。 printf(”Input Charge: Income+a
4、nd epend:lf”,log.charge); logcount=getLogcount(cfptr); if(logcount0) fseek(cfptr,size(logcount-1),SEEK_SET); fread(lastlog,size,1,cfptr) log。logid=lastlog.1ogid+1;balance=log。charge+lastlog。balance; else log.logid=1;charge; rewind(cfptr);ogid=last-taraetlastlog;logid=%ldn”,log。logid); fwirte(log,siz
5、eof(struct LogData),1,cfptr);/修改资金账户/void UpdateLog(FILE cfptr) FILE fpout; struct LogData user; char date11; char note15; double charge; int choice,ID; cfptr=fileopen(r”); if(fpout=fopen(”cash.datw”)=NULL)can not open the file !Enter LogID:d,ID);feof(cfptr) fread(user,sizeof(struct LogData),1,cfptr
6、); if(strcmp(user。logid,ID)=0) printf(”请输入修改信息: printf(”Date:%s,date); strcpy(user.logdate,date);Note:%s”,note); strcpy(user。lognote,note); printf(”Charge: user。charge=charge; printf(”Balance:%s”,balance);balance=balance; fwrite(&user,sizeof(struct LogData),1,fpout); fwrite(user,sizeof(struct LogDat
7、a),1,fpout); if(fclose(cfptr)can not close file! if(fclose(fpout)can not close file! unlink(cashbox。dat”);/remove(”cashbox.dat都是删除文件的函数 rename(cash.dat。dat,”cashbox。dat”);/*打开文件*/FILE *openfile(char *openmode),openmode)=NULL) printf(”can not open file cashbox。dat! return (fp); FILE fp; int choice; s
8、ize=sizeof(struct LogData); while(choice=inputchoice()!=0) switch(choice) case 1: fp=openfile(”ab+ AddNewLog(fp); break; /列出所有的收入支出情况*/ case 2: fp=openfile(rb”); ListAllLog(fp); /查询最后记录及余额*/ case 3:rb QueryLastLog(fp); break; case 4:rb”); UpdateLog(fp); default:Input Error.习题12一、选择题1 。以下语句将输出_B_。pri
9、ntf (%d %d d,NULL,0,EOF);A。0 0 1 B。0 0 1 C.NULL EOF D。1 0 EOF2.如果二进制文件a.dat 已经存在,现在要写入全新数据,应以_B_方式打开。A.”w” B.”wb” C.”w+ D.“wb+”3.定义”FILE *fp;”,则文件指针fp 指向的是_D_。A.文件在磁盘上的读写位置 B文件在级冲区上的读写位置C。整个磁盘文件 D。文件类型结构4.缓冲文件系统的文件缓冲区位于_C_。磁盘缓冲区中 B.磁盘文件中C.内存数据区中 D。程序文件中5。使文件指针重新定位到文件读写的首地址的函数是_C_。ftell ( ) B。fseek (
10、 ) C.rewind ( ) D.ferror( )二、填空题1.函数fopen ( )的返回值是_指向文件缓冲区的首地址的文件结构类型指针_。2.文件的三大特征是_名称_、_大小_和_类型_。3。缓冲文件系统与非缓冲文件系统的不同点在于_系统是否为文件自动分配一块文件缓冲区(内存单元)_。4。只能向指定文件写入一个字符的函数是_fputc()函数_。5.判断文件指针是否已经到了文件尾部的函数是_feof()函数_。6.阅读程序,以下程序完成的功能是_文件infile内容复制到文件_.#include stdio.hint main (void) char infile 10,outfile
11、 10;FILE fpa,* fpb;gets (infile);gets (outfile);fpa=fopen (infile, );fpb=fopen (outfile, w” );while (! feof (fpa) )fputc(fgetc(fpa),fpb);fclose (fpa) ;fclose (fpb) ;return 0;三、程序设计题1。统计文本文件中各类字符个数: 分别统计一个文本文件中字母、数字及其他字符的个数。#includestdio.h int letter=0,digiter=0,other=0;12-3.1.txt,”r”)=NULL)File open error! while(ch=fgetc(fp)!=EOF)ch=Z|ch=a=z letter+; else if(ch=0ch=9) digiter+; other+; printf(”letter=d,digiter=d,other=d”,letter,digiter,other); 2。将实数写入文件: 从键盘输人若干实数(以特殊数值1结束),分别写到一个文本文件中。试编写相应程序. int number; if(fp=fopen(”12-3。2.txt,”w”)=NULL)can not open file! exit(0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1