C/C++ code//将out.txt文件中的内容排序并去重,结果保存到unique.txt中
#include
#include
#define MAXLNO 10000000 //能处理的最大行数
#define MAXLEN 20 //能处理的最大行宽,包括行尾的\n和字符串尾的\0
char buf[MAXLNO][MAXLEN];
int ln,i;
FILE *f;
int cmpfun( const void *arg1, const void *arg2 ) {
return strcmp((const char *)arg1,(const char *)arg2);
}
int main() {
f=fopen("out.txt","r");
if (NULL==f) {
printf("Can not find file out.txt\n");
return 1;
}
ln=0;
while (1) {
if (NULL==fgets(buf[ln],MAXLEN,f)) break;
ln++;
if (ln>=MAXLNO) {
printf("Lines >%d ignored.",MAXLNO);
break;
}
}
fclose(f);
if (ln>1) qsort(buf,ln,MAXLEN,cmpfun);
f=fopen("unique.txt","w");
if (NULL==f) {
printf("Can not create file unique.txt\n");
return 2;
}
fprintf(f,"%s",buf[0]);
if (ln>1) for (i=1;i
if (strcmp((const char *)buf[i-1],(const char *)buf[i])) fprintf(f,"%s",buf[i]);
}
fclose(f);
return 0;
}
这段C/C++代码读取out.txt文件的内容,对其中的行进行排序和去重,最终将结果写入unique.txt。程序使用了qsort函数进行排序,并通过比较每一行来去除重复项。
587

被折叠的 条评论
为什么被折叠?



