×

c语言文件顺序读写

c语言文件顺序读写(c语言对文件数据排序)

admin admin 发表于2023-04-06 03:05:10 浏览59 评论0

抢沙发发表评论

本文目录一览:

C语言文件如何进行顺序读写?

c语言 写出来本来就是顺序读写啊 你可以设置 F2单节、 一步步的来读写

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

#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;

}

很久没写了,有很多不足,希望见谅!

C语言中,“顺序读写方式不使用于二进制文件”这句话为什么是对的,,

随机读写一般用于二进制文件。

顺序读写一般用于文本文件。

并不是不能,而是一般不用。文本文件添加一般从头读从尾写,二进制文件按照偏移地址读写。