首页 > 其他分享 >在文件原位置修改文件内容

在文件原位置修改文件内容

时间:2022-11-15 08:44:53浏览次数:46  
标签:fp 文件 fseek 位置 修改 内容 flen

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

下面是范例代码:

#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、主要中文乱码问题,方法之一,修改文件的编码集
————————————————
版权声明:本文为CSDN博主「hellocode_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hellocode_/article/details/127858814

标签:fp,文件,fseek,位置,修改,内容,flen
From: https://www.cnblogs.com/lgcodedream/p/16891219.html

相关文章

  • 案例:完成文件的复制操作
    功能分解1:文件---》FileReader一个字符一个字符将文件中的内容读取到程序中了packagecom.msb.io01;importjava.io.File;importjava.io.FileNotFoundException;im......
  • 第2-3-2章 环境搭建-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
    目录5.文件服务开发5.1环境搭建5.1.1数据库环境搭建5.1.2Nacos环境搭建5.1.3Nginx环境搭建5.1.4maven工程环境搭建5.文件服务开发全套代码及资料全部完整提供,点此......
  • Linux笔记:查看和修改系统时间
    1.查看系统当前时间命令:date[root@zjy~]#dateSunNov1320:14:44CST20222.修改系统时间修改时间:date-s"21:12:00"修改日期:date-s"2022-11-12"#需......
  • javaScript书写位置
    1.内部javaScript   直接写在html文件里,用script标签包住  规范:script标签写在</body>上面2.外部js:代码写在以.js结尾的文件里语法:通过scr......
  • SDC文件常用时序约束语句
    时钟约束1.基本约束create_clocks-nameclk_name-period10[get_portsclk_in]这是最基本的时钟约束语句,为时钟管脚创建一个时钟,综合工具会根据创建的时钟进行布局......
  • vue 前端读取后端excel文件流在页面显示、导出
    前端读取后端excel文件流在页面显示、导出,主要是样式布局要完全不变,所以不能用a-table/el-table,采用三方luckyexcel安装依赖 npminstallluckyexcel<template><......
  • ubuntu的iptables开机自动加载规则文件
    1、写一些规则sudoiptables-AINPUT-ptcp--dport80-jACCEPTsudoiptables-IINPUT-ptcp--dport3306-jREJECT2、保存到/etc/iptables.rules文件中sudo......
  • 如何在markdown文件中插入视频
    如何在typora中插入视频插入本地视频使用html中的video标签<videosrc="本地视频路径"></video>需要注意的是这种方式插入的视频可能会出现无法显示预览画面,且播放......
  • Maven项目POM文件单项配置说明
    Maven项目POM文件单项配置说明localRepository:本地仓库的路径<!--本地仓库的路径。默认值为${user.home}/.m2/repository。--><localRepository>usr/local/maven</l......
  • Maven项目POM文件总体配置说明
    Maven项目POM文件总体配置说明Maven项目POM文件总体配置说明如下所示:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"......