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

 我来答
折柳成萌
高粉答主

2019-12-01 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6182万
展开全部
//---------------------------------------------------------------------------

#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;
}
//---------------------------------------------------------------------------
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式