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