最近需要在文件原位置修改内容,该方法主要用于较少的文件内容,同时修改之后的内容和修改之前的格式一致,较适用于配置文件的原位置修改。

下面是范例代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    FILE* fp, *p;
    long flen = 0,m = 20;
    char i[128]="VALUE"; 
    char i1[128];
    char n[128] = "替换之后的内容";
    fp = fopen("card.txt", "r+"); //该文件在当前cpp文件同级目录下
    //scanf("%d", &i);
    while (!feof(fp)) {
        //所获取的内容为中文,需将文件的编码类型改成ANSI,就可避免乱码
        fscanf(fp, "%s = %d", i1,&m);
        if (strcmp(i,i1)==0) {
            p = fopen("1.txt", "w");
            fprintf_s(p, "%s = %d", i, m);
            flen = ftell(p);
            fclose(p);
            m = 90;
            fseek(fp, -flen, 1); //表示从当前位置向前偏移flen个字符,fp指向该偏移
            fprintf(fp, "%s = %d\n", i, m);
            break;
        }
    }
    fclose(fp);
    return 0;
}
//将文件原内容 “VALUE = 10” 改成"VALUE = 90"

主要几点:

1、将要修改的内容临时写到另一个临时文件中,获取文件中内容的长度;

2、将原文件进行重定位使用fseek函数;

3、使用fprintf将更新的内容写到原位置

小tips:

1、了解ftell(),fseek()用法

参考

fseek——解析1_jinlunyue的博客-CSDN博客

2、主要中文乱码问题,方法之一,修改文件的编码集

在文件原位置修改文件内容相关推荐

  1. 根文件制作:ramdisk.image.gz和uramdisk.image.gz文件转换,修改文件系统内容

    根文件系统制作:ramdisk.image.gz和uramdisk.image.gz文件转换,修改文件系统内容 uramdisk.image.gz-> ramdisk.image.gz 将文件u ...

  2. Excel与bat批量生成文件夹,修改文件夹名称

    用Excel与bat批量生成文件夹,修改文件夹名称 一.批量生成文件夹 excel一列输入文件名序列:另一列用公式生成要写入bat文件的序列,之后复制该列写入.txt文件,保存为.bat文件,双击运行 ...

  3. (BAT批处理)如何穿透多个文件夹批量修改文件后缀名?

    如何穿透多个文件夹批量修改文件后缀名?也就是不打开文件夹,直接修改.re批处理命令不知道怎么穿透文件夹. 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据:以下代码复制粘贴到记事本,另存为xx.b ...

  4. linux文件权限类(修改文件权限、修改文件所有者和所属组)

    文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定.在Linux ...

  5. matlab 文件指针回到开头,[c/c++] 文件指针位置回到文件开头(rewind)及行开头(ftell+fseek)...

    待读入文件 1.greenteemo 2.csdn 3.blog 代码,详细说明见注释 #include #define LENGTH_OF_LINE 1024 int main(){ FILE *f ...

  6. centos普通用户修改文件权限_centos修改文件及文件夹权限

    查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表 ...

  7. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表...

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  8. 批量重命名文件和批量修改文件扩展名

    批量提取文件名称和批量修改文件扩展名 在想提取文件的目录下,新建一个txt文件: 在txt文件中输入以下代码: 将txt后缀名改为bat; 双击这个文件,即可. 代码1:所有文件格式 @echo of ...

  9. 【千律】C++基础:删除只读属性文件、文件剪切、修改文件扩展名

    1. 删除带有只读属性的文件 #include <tchar.h> #include <windows.h>int APIENTRY _tWinMain(_In_ HINSTA ...

最新文章

  1. 智能指针和内存管理小结
  2. ACM MM 2020:一种基于情感脑电信号时-频-空特征的3D密集连接网络
  3. ActiveMQ;RabbitMQ;ZeroMQ
  4. ACM-ICPC 2018 徐州赛区网络预赛 D. EasyMath
  5. 如何:优化Hive ZooKeeper Lock Manager实施
  6. Java——容器(泛型)
  7. 忘却的旋律java2_[17-8-10]【复杂问题】打不开游戏
  8. Cadence、Pspice 软件相关汇总
  9. 豆瓣top250电影数据分析
  10. 电子电路仿真软件中文版_一个电子工程师的自我修养
  11. OV2640拍摄jpg图像无法解析
  12. activator类的使用
  13. Unity使用VS2019打开代码出现不兼容的解决方法
  14. 【原创】基于Springboot、WebSocket的一对一聊天室
  15. 分析学中的若干空间:
  16. 华为云服务之计算服务
  17. php.ini reporting,php.ini中error_reporting参数配置
  18. Unity Toon Shader 卡通着色器(一):卡通着色
  19. FireFox安装广告净化器或其他三方插件
  20. 重复字符串的处理问题

热门文章

  1. 0基础24岁女硕士生,想转行做月薪30k的测试开发,需要从什么开始学习?
  2. [学习笔记]Java如何处理EXCEL的读取
  3. matlab将图片旋转的代码_空间曲线绕空间直线旋转生成的旋转曲面方程
  4. JS - 阿里云 OSS 文件下载通用办法(支持跨域)
  5. 平板电脑win10 android比较好,华为MateBook名不副实!Win10平板电脑最合适
  6. 中国工程院院士、中国人工智能学会理事长李德毅:人工智能研究新进展
  7. 如何设置开机启动程序
  8. char远非仅仅是字符
  9. NLP基础知识(三)-AI应用篇
  10. Python:opencv库实现调用摄像头拍照并保存到本地