两种方法

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语言修改文件某部分内容的更多相关文章

  1. python 修改文件中的内容

    在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...

  2. python文件操作-修改文件中的内容

    一.文件读写有缓冲区 fw = open('nhy','w') fw.write('sdfsdf') fw.flush()# 把缓冲区里面的数据立即写到磁盘上 fw.close() 二.with的用法 ...

  3. 修改文件中的内容,使用fileinput模块

    import fileinput filename = 'passwd' ,backup='.bak') print line.replace('root','ROOT') a = ' this is ...

  4. Java之递归遍历目录,修改指定文件的指定内容

    EditProperties.java package PropertiesOperation.Edit; import java.io.File; /** * 替换指定Porpoerties文件中的 ...

  5. Java之扫描目录,修改文件内容

    扫描目录下文件,修改文件中指定内容 package org.utils.tools.fileoper; import java.io.*; import java.util.ArrayList; im ...

  6. linux --批量修改文件内容

    由于目前测试的BIOS有一个option 发生了改变,因此我们需要在之前写好的脚本上进行修改,将旧的option 改为新的选项,因此在此处用到了批量修改文件中的内容: 1. perl 命令替换: pe ...

  7. C语言 多文件编程

    C语言 多文件编程 分文件编程 把函数声明放在头文件xxx.h中,在主函数中包含相应头文件 在头文件对应的xxx.c中实现xxx.h声明的函数 防止头文件重复包含 1.当一个项目比较大时,往往都是分文 ...

  8. c语言的预处理指令分3种   1> 宏定义   2> 条件编译   3> 文件包含

    宏简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 所有的预处 ...

  9. python笔记(三)---文件读写、修改文件内容、处理json、函数

    文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...

随机推荐

  1. 递归树处理,配合vue的vueTreeselect组件使用

    在项目中经常会使用到tree,并且需要对递归树进行操作. 在vue项目中,使用vue-treeselect插件(https://vue-treeselect.js.org/) 使用中遇到的问题: 1. ...

  2. JavaScript 实现留言框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. POI实现Excel2003插入多张图片

    POI的操作Excel时,不可避免有操作图片的处理.怎么插入图片呢?网上也有不少介绍. 下面的代码是向Excel中插入多张图片的例子: public static void main(String[] ...

  4. Ubuntu 安装 Courier New字体和雅黑consolas字体

    一直觉得Ubuntu下的字体不是很好,但毕竟不影响使用,然后作开发的时候eclipse的字体完全没有windows下的两大适合编成的字体courier new 和consloas .可以使用系统安装字 ...

  5. cogs 2056. 无平方因子数

    2056. 无平方因子数 ★☆   输入文件:non.in   输出文件:non.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 给出正整数n,m,区间[n,m]内的无 ...

  6. jquery在文本框之后添加红*

    var addHtml="<span class='text_red'>*</span>";function req(re){ if(re.parent(& ...

  7. 指尖上的电商---(5)schema.xml配置具体解释

    这一节我们看下schema.xml文件中各个节点的配置极其作用.schema.xml文件中面主要定义了索引数据类型,索引字段等信息. 主要包含了下面节点 1.fieldtype节点 fieldtype ...

  8. GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明

    /*********************************************************************  * Author  : Samson  * Date   ...

  9. VS 2013+Qt 5.4.1

    Qt应用能够用Qt Creator开发,也能够使用Visual Studio. 我之前一直用Qt Creator.也始终认为这是最好的选择.只是有人偏爱Visual Studio,我也由于工作须要,要 ...

  10. httpClient模拟登陆校内某系统

    package com.huowolf; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpE ...