1、可以使用fseek()来指定文件位置。
函数原型:int fseek(FILE *stream, long offset, int fromwhere)
函数说明:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值:如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
2、例程:向test.txt的末尾添加“this is a text"的字符串。
#include <stdio.h>#include <string.h>
int main()
{
const char * szwrite = " this is a text"
FILE *fp = fopen("test.txt", "a+")
if (fp==0) {
printf("can't open file\n")
return 0
}
fseek(fp, 0,SEEK_END)
fwrite(szwrite, strlen(szwrite) * sizeof(char), 1, fp)
fclose(fp)
return 0
}
先生成一个新文件,写入想插入的内容,再把原文件逐行读入并写入新文件,最后关闭两个文件,删除旧文件,重命名新文件为旧文件名。还有就是利用cpoy命令,文件1为要插入的内容,文件2为旧文件,你可以copy 文件1+文件2 文件3
这样文件3就是你要的内容。当然,想在中间插入,这个办法是不可以的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)