C++程序编程先读取文件数据按从小到大的顺序排列然后在移到另一个文件中?

如题所述

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
int comp(const void *a,const void *b)
{
int fg=1; /*fg=1表示升序排序,fg=-1表示降序排序*/
return fg*(*(int *)a-*(int *)b);
}
int main(void)
{
FILE *fp=fopen("c:\\dat.txt","r"); /*待排序数据文件,可在此修改*/
int n=0,in,*a=NULL;
while (fscanf(fp,"%d",&in)!=EOF)
{
a=a?realloc(a,sizeof(int)*(n+1)):malloc(sizeof(int));
a[n++]=in;
}
fclose(fp);
qsort(a,n,sizeof(int),comp);
fp=fopen("c:\\sort_dat.txt","w"); /*已排序数据文件,可在此修改*/

for (in = 0; in<n; in++) {
fprintf(fp,"%d ",a[in]);
}

fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答