修改文件最好的,最简单的方法,是新建一个文件,把修改部分前面的,先写入新文件,
然后写入修改的部分,再把后一部分没有修改的,写到新文件中去。然后文件重命名。
原文件改名备份文件,新文件改名原文件。
如果修改的数据很少N~100N
KB,N~10N
MB
可以用缓冲区处理好修改,再写入文件。
FILE×
fopen
fseek
fwrite
fclose
PS:
1)如果修改的内容,和原文件被修改的数据,字节数完全相同,直接找到要修改的地方,写入新内容就可以了。
2)如果修改后的内容,和原文件被修改的数据,字节数不同,建议新建一个文件,否则很麻烦,要用读写方式打开。
a)
如果修改后数据增加,把修改数据后的所有数据向后移动,给修改的数据腾地方。
b)
如果减少,要把所有数据前移,然后修改文件长度。
#include<stdio.h>#define N 10
int fun(int a[N])
int main()
{
int a[N],k
printf("请输入10个整数:")
for(k=0k<Nk++) scanf("%d",&a[k])
printf("排列后的数组:\n")
fun(a)
for(k=0k<Nk++) printf("%4d",a[k])
printf("\n")
return 0
}
int fun(int a[N])
{
int i,j,m,t
for(m=0m<Nm++){
i=m
for(j=i+1j<Nj++){
if(a[j]<a[i]) i=j
t=a[m]
a[m]=a[i]
a[i]=t
}
}
return a[N]
}
把fun(a)拿出来
fun函数里的内容就是排序 排序完了在输出就可以了