文本文件的操作(100分)

来源:百度知道 编辑:UC知道 时间:2024/05/28 00:37:41
请大家帮我写一个程序,题目是这样的:
A.txt文件里有如下数字:

1 2 3 4 5
23 45 56 25
34 45 25 67
25 56 45 34

将A中的数字为25的,取出,写入B.txt中。
忘了一个重要的问题:一定要用c语言实现

泠月冰辰的程序基本上是对的。
但有BUG:
如果输入的最后一个数是25,程序 将会多输出一次25。
例如:
25 56 45 25
最后一个25 会多输出一次。
必须把
fscanf(frp,"%d",&x); 改成:
if ( fscanf(frp,"%d",&x)==EOF) break;
这样,当EOF 到来时,退出 while, 不会把最后一个数输出两次。

当然,最后一个数不是25时,看不出问题。

#include <stdio.h>

int main(int argc, char *argv[])
{
FILE *fwp,*frp;
int x;
if((fwp=fopen("B.txt","w"))==NULL||(frp=fopen("A.txt","r"))==NULL) return 1;
while(!feof(frp))
{
if ( fscanf(frp,"%d",&x)==EOF) break;
if(x==25) fprintf(fwp,"%d ",x);
}
fclose(frp);
fclose(fwp);
return 0;
}

#include <stdio.h>

int main(int argc, char *argv[])
{
FILE *fwp,*frp;
int x;
if((fwp=fopen("B.txt","w"))==NULL||(frp=fopen("A.txt","r"))==NULL) return 1;
while(