C语言中怎样实现对数组数据的删除、修改?

Python010

C语言中怎样实现对数组数据的删除、修改?,第1张

#include\x0d\x0atypedef struct Node{\x0d\x0aint a,b\x0d\x0a}node\x0d\x0anode c[100]\x0d\x0aint n\x0d\x0avoid print(){\x0d\x0a int i\x0d\x0a printf("\n当前数据:\n")\x0d\x0a for(i=1i 回答于 2022-12-11

由于操作系统对文件操作做了封装,本来很容易的事情变得很难了。

修改文件最好的,最简单的方法,是新建一个文件,把修改部分前面的,先写入新文件,

然后写入修改的部分,再把后一部分没有修改的,写到新文件中去。然后文件重命名。

原文件改名备份文件,新文件改名原文件。

如果修改的数据很少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函数里的内容就是排序 排序完了在输出就可以了