- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.3.1 文件中的单个字符读写操作 FILE *in; char c,word[50]; int j; WORD *head,*wordarr,*p; if(argc!=2) { printf(Usage:command filenameCR\n); return; } if((in=fopen(argv[1],r))==NULL) { printf(Cant open this file.\n); return; } head=(WORD*)malloc(sizeof(WORD)); head-next=NULL; 创建单链表的头结点 9.3.1 文件中的单个字符读写操作 while(!feof(in)) { j=0; while(isspace(c=fgetc(in))) ; if(isalpha(c)) word[j++]=c; while(isalpha(c=fgetc(in))) word[j++]=c; word[j]=\0; insertlist(head,word); } wordarr=(WORD *)malloc(sizeof(WORD)*wordcount); 9.3.1 文件中的单个字符读写操作 for(j=0,p=head-next;p!=NULL;p=p-next,j++) { strcpy(wordarr[j].w,p-w); wordarr[j].count=p-count; } sordwords(wordarr,wordcount); for(j=0;jwordcount;j++) printf(%d\t%s\n,wordarr[j].count,wordarr[j].w); 9.3.1 文件中的单个字符读写操作 void insertlist(WORD *h,char *w) { WORD *p,*last; last=h; while(strcmp(last-w,w)!=0last-next!=NULL) last=last-next; if(last-next==NULL) { p=(WORD*)malloc(sizeof(WORD)); strcpy(p-w,w); p-count=1; p-next=NULL; last-next=p; wordcount++; } else last-count++; } 9.3.1 文件中的单个字符读写操作 #define IN 1 #define OUT 0 int words(FILE *f) { int c,nw=0,state=OUT; while(!feof(f)) { c=fgetc(f); if(isspace(c)) state=OUT; else if(state==OUT) { state=IN; nw++; } } rewind(f); return nw; } 9.3.1 文件中的单个字符读写操作 void sordwords(WORD *w,int sz) { WORD t; int i,j,k; for(i=0;isz-1;i++) { k=i; for(j=i+1;jsz;j++) if(w[j].countw[k].count) k=j; if(k!=i) t=w[i],w[i]=w[k],w[k]=t; } } 9.3.2 文件中的字符串读写操作 char *fgets( char *string, int n, FILE *stream ); 功能:从与文件指针变量stream 相关联的文件中最多读取n-1个字符,添加上字符串结尾字符’\0’构成字符串后存放到string所代表的字符串对象中去。 如果在读入n-1个字符前遇到换行符’\n’或文件结束符EOF时操作也将结束,将遇到的换行符作为一个有效字符处理,然后在读入的字符串末尾自动加上一个字符串结尾符’\0’ 后存放到string所代表的字符串对象中,函数执行出错或遇到了文件的结束标志时返回NULL。 9.3.2 文件中的字符串读写操作 例9-7 按每次读入一行的方式读入例9.1的源程序文件,并在屏幕上显示其内容。 FILE *fp; char str[100]; if((fp=fopen(Ex09-01.cpp,r))==NULL) { printf(Cannot open file...\n); return; } while(fgets(str,100,fp)!=NULL) printf(%s,str); fclose(fp); 9.3.2 文件中的
文档评论(0)