C语言修改文件某部分内容
两种方法
1.全部读入内存 修改后重新存入文件
2.边读边写到另一新建文件 要修改的部分修改后存入新建文件 其他部分原封不动写入
写完删掉原先文件 将这个新的改为删掉那个的名字
方法一 读入内存修改 然后重新写入文件
#include <stdio.h>
#include <string.h>
main()
{
int i=,num;
char str[][]={},linedata[]={};
FILE *fp=fopen("data.txt","r");
FILE *fpw;
while (fgets(linedata,sizeof(linedata)-,fp))
{
if (strcmp(linedata,"bbb\n")==)
{
strcpy(str[i],"ModContent\n");
}else
{
strcpy(str[i],linedata);
}
i++;
}
num=i;
fpw = fopen("data.txt","w");
for (i=;i<num;i++)
{
fputs(str[i],fpw);
}
fclose(fpw);
}
方法二 逐行写入临时文件,遇到修改部分 修改后写入临时文件 完成后删除data.txt 然后将临时文件改名为data.txt
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
char linedata[]={};
FILE *fp=fopen("data.txt","r");
FILE *fpw=fopen("tmp.txt","w");
while (fgets(linedata,sizeof(linedata)-,fp))
{
if (strcmp(linedata,"bbb\n")==)
{
fputs("ModContent\n",fpw);
}else
fputs(linedata,fpw);
}
fclose(fp);
fclose(fpw);
system("del data.txt");
system("rename tmp.txt data.txt");
}
C语言修改文件某部分内容的更多相关文章
- python 修改文件中的内容
在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...
- python文件操作-修改文件中的内容
一.文件读写有缓冲区 fw = open('nhy','w') fw.write('sdfsdf') fw.flush()# 把缓冲区里面的数据立即写到磁盘上 fw.close() 二.with的用法 ...
- 修改文件中的内容,使用fileinput模块
import fileinput filename = 'passwd' ,backup='.bak') print line.replace('root','ROOT') a = ' this is ...
- Java之递归遍历目录,修改指定文件的指定内容
EditProperties.java package PropertiesOperation.Edit; import java.io.File; /** * 替换指定Porpoerties文件中的 ...
- Java之扫描目录,修改文件内容
扫描目录下文件,修改文件中指定内容 package org.utils.tools.fileoper; import java.io.*; import java.util.ArrayList; im ...
- linux --批量修改文件内容
由于目前测试的BIOS有一个option 发生了改变,因此我们需要在之前写好的脚本上进行修改,将旧的option 改为新的选项,因此在此处用到了批量修改文件中的内容: 1. perl 命令替换: pe ...
- C语言 多文件编程
C语言 多文件编程 分文件编程 把函数声明放在头文件xxx.h中,在主函数中包含相应头文件 在头文件对应的xxx.c中实现xxx.h声明的函数 防止头文件重复包含 1.当一个项目比较大时,往往都是分文 ...
- c语言的预处理指令分3种 1> 宏定义 2> 条件编译 3> 文件包含
宏简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 所有的预处 ...
- python笔记(三)---文件读写、修改文件内容、处理json、函数
文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...
随机推荐
- Linux下安装Solr7.5.0,并部署到Tomcat
收藏地址:https://blog.csdn.net/qq_39135287/article/details/84260724
- linux rar 解压忽略带密码压缩包
#解压忽略密码 rar x -p- file.rar #解压忽略子目录 rar x -ep file.rar
- PHP下的异步尝试二:初识协程
PHP下的异步尝试系列 如果你还不太了解PHP下的生成器,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify ...
- Vue系列(三):组件及数据传递、路由、单文件组件、vue-cli脚手架
上一篇:Vue系列(二):发送Ajax.JSONP请求.Vue生命周期及实例属性和方法.自定义指令与过渡 一. 组件component 1. 什么是组件? 组件(Component)是 Vue.js ...
- cogs 2752. [济南集训 2017] 数列运算
2752. [济南集训 2017] 数列运算 ★★☆ 输入文件:sequenceQBXT.in 输出文件:sequenceQBXT.out 简单对比时间限制:1 s 内存限制:512 ...
- Eclipse配置Maven私服
Eclipse配置Maven私服 前言: 搭建Maven私有仓库的主要目的,是为了在团队多人开发时,只要内网的私有仓库有下载过依赖的jar包,就直接从私有仓库获取,不再通过外网的中央仓库.如果私服上面 ...
- PCA(Principal Components Analysis)主成分分析
全是图片..新手伤不起.word弄的,结果csdn传不了..以后改. .
- Android开发工具---SQLiteManager插件
Android开发工具---SQLiteManager插件 效果图例如以下: 平时在开发过程中查看数据库都要把数据库文件导出来,然后再用其它工具打开,SQLiteManager插件则给予我们一些便利. ...
- 多项福利回馈会员,且看Hao123怎样玩转“霸权主义”
谈到"霸权主义",我们非常easy将其与国际政治联系在一起.只是.霸权主义可不全然用来形容政治,在7月14日,Hao123上线了一个会员福利活动,命名为"Hao1 ...
- sublime配置python运行环境
1.sublime下载与插件管理 1.1 下载 官网地址:https://www.sublimetext.com/3 1.2 安装Package Control管理插件 使用ctrl + ` (感叹后 ...