zoukankan      html  css  js  c++  java
  • 通过文件指针插入文件内容

    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);
    }
  • 相关阅读:
    girdview
    c#中&&,||的应用
    ToString()和Convert.ToString()的区别
    日期格式化
    线程间操作ui
    基于k3cloud做的东西
    格式化金额字段添加千位符
    SQL 分页查询
    xammp 配置虚拟主机
    jQuery事件对象event的属性和方法
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5863463.html
Copyright © 2011-2022 走看看