C语言中文件文件内容的插入如何实现
通过文件定位后对文件进行写入操作,但是如果在定位的后面还有原有的数据,写入操作会破坏原有数据。请问:如何实现在不破坏原有数据的基础上,对文件进行插入数据的操作?可以清晰的看出,文件执行的是对元数据的替换,而不是插入!
我的测试代码如下:
程序代码:#define _CRT_SECURE_NO_DEPRECATE
# include <stdio.h>
#include<stdlib.h>
#define see system("pause")
void main()
{
FILE *ff;
char ch,sh[20];
ff = fopen("..\\5.txt", "r+");//以读写方式打开文件
if (ff == NULL){
printf("error\n");
see;
}
while ((ch = fgetc(ff))!= EOF) //输出文件内容
{
putchar(ch);
}
putchar(10);
rewind(ff);
while ((ch = fgetc(ff)) != EOF&&ch != '\n')//定位第一行
;
fseek(ff, 0L, 1);
fprintf(ff, "%s", "test");
rewind(ff);
while ((ch = fgetc(ff)) != EOF) //输出文件内容
{
putchar(ch);
}
see;
}测试原文件及结果如下








