C文件操作:如何在文件中插入数据

来源:百度知道 编辑:UC知道 时间:2024/06/21 08:43:44
我先在文件中找到需要插入数据的位置,然后如何把数据插入文件中间呢?
比如:文件内容是
111111111
222222222
444444444
我要把333333333插到22222222后面

第一次写涉及文件操作的代码 望各位路过的大牛指教
222后面的数据读出后,怎么删除呢

把22222222后面数据全读出来,在22222222后面插入333333333及其他数据。
最好把这个文件用mmap()做成内存映像,这样操作起来更方便快捷。

如果数据都是等长的。可以考虑随机读写,当然移动数据麻烦点。
很赞成一楼的说法,用mmap()做成内存映象,能提高效率,而且也方便。

fopen
fread
fwrite

我估计你想知道的是这些函数
你知道了这些函数的用法了,
算法应该不是问题.

假设文件名为w04.txt,确保本程序所在的同一个目录下有这个文件,程序执行后将结果保存到文件w05.txt中。看你的文件是有序的,则一个完整的c程序如下,在win-tc和Dev-c++下已调试通过。
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 100 /* 最多读100行 */

char s[N][81];
main()
{
int i=0,j,max;
char *p,s2[81],s1[]="333333333";
FILE *fp1,*fp2;

fp1=fopen("w04.txt","r");
fp2=fopen("w05.txt","w");
while (i<N&&fgets(s[i],81,fp1)!=NULL)
{
p=strchr(s[i],'\n');
if(p)
*p='\0';
if(strcmp(s1,s[i])>0)
i++;
else
{ strcpy(s2,s[i]);
strcpy(s[i],s1);
i++;
brea