用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里面的数字的主要内容,如果未能解决你的问题,请参考以下文章