15,440
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *f;
char buf[16001];
char buf0[16001];
char ln[16001];
char ln0[16001];
long cnt,s,w;
void main(int argc,char *argv[]) {
if (argc<2||argc==3||argc>4) {
printf("Collect filename.ext [startcol width]\n");
printf(" Note: filename.ext must be sorted.\n");
return;
}
s=1;
w=16000;
if (argc==4) {
s=atoi(argv[2]);
w=atoi(argv[3]);
}
if ((f=fopen(argv[1],"rt"))==NULL) {
printf("Can not open %s",argv[1]);
return;
}
buf[0]=0;
cnt=0;
while (1) {
fgets(ln0,16000,f);
strncpy(ln,ln0+s-1,w);ln[w]=0;
cnt++;
if (feof(f)) {
fclose(f);
if (buf[0]>0) printf("%8d, %s",cnt,buf0);
return;
}
if (strcmp(buf,ln)!=0) {
if (buf[0]>0) printf("%8d, %s",cnt,buf0);
strcpy(buf,ln);
strcpy(buf0,ln0);
cnt=0;
}
}
}