C语言中怎样读取文件数据并对数据排序再重新写入文件

 我来答
微笑埋葬情殇
2018-04-17 · 超过16用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:12.8万
展开全部
#include <stdio.h>
#include <stdlib.h>
/**C语言中怎样竖段读取文件数据并对数据排序再重新写入文件*/
int main()
{
FILE *fp,*fpn; //创建文件指针fp和fpn
int a[10],b[10],i,j,temp; //a数组用来山腊存入数据 b数组用来接受文件数据进行重新排序输出
for(i = 0; i < 10; i++)
{
a[i] = i; //初始化赋值
}
if((fp = fopen("data.dat","wb")) == NULL) //以只写的方式打开一个二进制文件,没有则自行建立,有的话就进行覆盖
{
printf("Error!\n");
exit(1);
}
fwrite(a,sizeof(a),1,fp); //进行一次余唯誉写入,写入sizeof大小,将a写入到fp所指向的文件中
fclose(fp); //写完之后关闭文件指针
if((fpn = fopen("data.dat","rb")) == NULL) //以只读的方式打开一个二进制文件
{
printf("Error!\n");
exit(1);
}
for(i = 0; i < 10; i++)
{
fread(&b[i],sizeof(int),1,fpn); //用循环进行读取,每次读取int大小,从fpn所指向的文件读取,存入b数组中
}
fclose(fpn); //关闭文件指针
for(i = 0; i < 9; i++) //冒泡排序
{
for(j = 0; j < 10 - i - 1; j++)
{
if(b[j] < b[j + 1])
{
temp = b[j];
b[j] = b[j+1];
b[j+1] = temp;
}
}
}
for(i = 0; i < 10; i++) //输出
{
printf("%d\t",b[i]);
}
return 0;
}
很久没写了,有很多不足,希望见谅!
小笨熊停一下
2016-12-23 · TA获得超过179个赞
知道小有建树答主
回答量:357
采纳率:0%
帮助的人:135万
展开全部
我来回答吧:段冲
首先是两个输入文件:
一个文本文件:scoret.txt
一个二进制文件:scoreb.txt
文本文件scoret.txt我们可以直郑猜接编辑(按要求编辑五个学生的姓名和成绩),而二进制文件不易编辑。
我们先写一个代码,实再将scoret.txt文件握丛歼转成二进制文件scoreb.txt
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct stu {
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-04-16 · TA获得超过2029个赞
知道小有建树答主
回答量:9715
采纳率:0%
帮助的人:1092万
展开全部
c语言读文件 写文件的例子 我能做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式