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; }测试原文件及结果如下