通过文件指针插入文件内容

Posted 芬乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过文件指针插入文件内容相关的知识,希望对你有一定的参考价值。

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);
}

 

以上是关于通过文件指针插入文件内容的主要内容,如果未能解决你的问题,请参考以下文章

KDoc:插入代码片段

LINUX C语言,在文本中某一行插入内容,最好有程序。

代码适用于与单个 html 文件不同的堆栈片段

pycharm自定义代码模板

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

插入排序