用C语言如何修改txt里面的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言如何修改txt里面的数字相关的知识,希望对你有一定的参考价值。

txt内容如下
fdfdsfdsfdsfsdfsdfsd
fenshu 99

fdsfdsfds
fenshu

这个txt中有两个fenshu,但是只修改fenshu 99这个的数字,如何修改呢。用C语言实现。

文件中可能存在很多fenshu这个单词,但是只修改fenshu带数字的

运行程序后如下:

请输入你要修改的分数:
输入88后

那么txt中的fenshu 99变成fenshu 88 收起
回答的好,有代码完整的追加300财富值

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

#define MAX_LINE 1024

int main()

 char buf[MAX_LINE];  /*缓冲区*/
 FILE *fp;            /*文件指针*/
 int len,i,s;             /*行字符个数*/
    FILE *in=fopen("a.txt","r");   /*in是操作文件*/
    FILE *out=fopen("b.txt","w");  /*out是充当临时文件作用*/
    int ch=0,ch0;
    if(!in)
    
        printf("cann't open a.txt\\n");
        exit(1);
    
    if(!out)
    
        printf("cann't create b.txt\\n");
        exit(1);
    
printf("请输入数据!\\r\\n");
    scanf("%d",&s);
        /*开始复制*/
    while(!feof(in))
    
       ch=fgetc(in);
       if(ch<='9'&&ch>='0')
   
         for(i=0;i<5;i++) 
 
 ch=fgetc(in);
 if(ch>'9'||ch<'0')ch0=ch;break;
     
 if(s==100)
 
 ch='1';
 fputc(ch,out);
 ch='0';
 fputc(ch,out);
 ch='0';
 fputc(ch,out);
 fputc(ch0,out);
 
 else if(s<100&&s>=10)
 
 ch=s/10+'0';
 fputc(ch,out);
 ch=s%10+'0';
 fputc(ch,out);
 fputc(ch0,out);
 
 else if(s>=0&&s<10)
 
 ch=s+'0';
 fputc(ch,out);
 fputc(ch0,out);
 
   else   fputc(ch,out);
    
    fclose(in);  fclose(out);  
    unlink("a.txt"); /*删除test.txt*/
    rename("b.txt","a.txt"); /*改名*/
    printf("ok!!!!!!\\n");
    return 0;


忘采纳 谢谢 。。。。写了好一会

追问

这个不行,如果文档里面有其他数字也是99,那么都会被改掉了啊!不对啊,而且后面不一定是99啊,fenshu后面也有可能是其他数字啊,数字的大小,多少都有,895845894,希望继续处理,我会追加更高

追答

文档内的数据完整给我

追问

文档内容如下
fdfdsfdsfdsfsdfsdfsd

fenshu 99

fdsfdsfds 99
fenshu
99.99.99.99
99
fenshu

其他地方的不改,就是以fenshu为准,查到fenshu 的位置,改99这个数字,你前面的代码,如果文档其他地方有99的话,也被改了,fenshu 99在txt里任何位置,都可以准确改到。fenshu后面带数字的才改,不带数字的不改

追答

传不上去。。。超字数了 留邮箱

追问

写的少点,这个应该不需要那么多代码吧,邮箱没办法留

参考技术A 20rmb帮写 私信

以上是关于用C语言如何修改txt里面的数字的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程中怎么实现数据的覆盖!

c语言修改文件图标

用C语言 读取 txt 里面的数据

C语言从TXT文档中读取一组数字时如何判断已经读到最后一个数字?

C语言里面如何设置相对路径

C语言高手请进!!!