能不能写个程序,
随机产生一个>1而且<9999的数字,打开文件aa.txt,找到5678替换成随机产生的数字。
随机数产生模块
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) { int k; srand(time(NULL)); k=random(9999); printf("%d",k); }
哪位高手帮忙写个文件读写模块?
谢大侠的指点,
可是还没能解决问题。
是要修改一个文件,而不是两个。
大侠的程式是按顺序找到第五个字符修改,
我原意是读文件,如果读到5678,就修改。
文件内容可能是123456789,要是12749382756789124呢?这程式不行哟!
天使预备役大侠的程序把文件其它内容都栅了,
有没有办法只改“5678”这四个字,而不影响其它内容呢?
哦!
程我修改了一下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> int main() { FILE *FpSource; int TestOk=0; long fpi=0; char ch; char cha='a'; char chb='a'; char chc='a'; char chd='a'; int A,B,C,D;
srand(time(NULL)); A=random(9); B=random(9); C=random(9); D=random(9);
clrscr();
if((FpSource=fopen("f:\\turboc2\\1.txt","r+"))==NULL) { printf("Can not open the file!"); exit(0); } rewind(FpSource); while(((ch=fgetc(FpSource))!=EOF)&&(TestOk==0)) { cha=chb; chb=chc; chc=chd; chd=ch; fpi++; if((cha=='5')&&(chb=='6')&&(chc=='7')&&(chd=='8')) TestOk=1; } if(TestOk) { printf("\nOK%d",fpi); cha=A;chb=B;chc=C;chd=D; fseek(FpSource,fpi+1,0); fputc(cha+48,FpSource); fputc(chb+48,FpSource); fputc(chc+48,FpSource); fputc(chd+48,FpSource); } printf("\n%d%d%d%d",A,B,C,D); fclose(FpSource); getch(); }
可以实现。
不过我不明白 fseek(FpSource,fpi+1,0); 这一句中为什么是fpi+1而不是fpi-4 ????