通过文件指针插入文件内容
fseek(pf, -10, SEEK_END);
如果是这样的话,那么他所移动到的位置,右边有10个数字。
1.对文件基本操作
FILE *pf = fopen(path, "r+"); //文件指针在头部,不清空原来的内容。
FILE *pf = fopen(path, "w+"); //文件指针在头部,会清空原来的内容。
FILE *pf = fopen(path, "a+"); //尾部添加,文件指针会被移动到尾部。
2.文件指针不同操作符
-
FILE *pf = fopen(path, "r+");
fseek(pf, -10, SEEK_END);
fputs("abcdef", pf);
//指针可以被移动到添加到指定的位置,但是不是插入,它会将文件中该位置正向同样大小的内容给替换了,就不是插入了。
-
FILE *pf = fopen(path, "w+");
fseek(pf, -10, SEEK_END);
fputs("abcdef", pf);
//使用w+,会将原文件全部清楚,然后再写入。
-
FILE *pf = fopen(path, "a+");
fseek(pf, -10, SEEK_END);
fputs("abcdef", pf);
//fseek对指针的移动是无效的,人家依然会将内容添加到文件尾部。
2.利用文件指针对文件进行插入
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { char path[150] = "C:\\Users\\sjx1\\Desktop\\a.txt"; FILE *pf = fopen(path, "r+");//文件指针在头部,不清空内容 fseek(pf, 0, SEEK_END); fputs("0000000", pf); fflush(pf);//刷新文件 for (int i = 0; i < 10;i++) { fseek(pf, -7 - i - 1, SEEK_END); int ch = fgetc(pf); fseek(pf, -i - 1, SEEK_END); fputc(ch, pf); fflush(pf);//刷新文件 } fseek(pf, -17, SEEK_END);//a+ 文件指针移动无效 fputs("abcdefg", pf); fflush(pf);//刷新文件 fclose(pf); }
人怂胆子小,手拿大刀跑。