我编写了一个程序在单独的文件中打印奇数和偶数。我的计划是在输出中显示两次的值(C编程)
#include<stdio.h>
int main()
{
FILE *f1,*f2,*f3;
int n,i,num;
f1 = fopen("number.txt","w");
printf("Enter the number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
fprintf(f1,"%d ",i);
fprintf(f1,"\n");
fclose(f1);
f1 = fopen("number.txt","r");
f2 = fopen("even.txt","w");
f3 = fopen("odd.txt","w");
fprintf(f2,"Even numbers:\n");
fprintf(f3,"Odd numbers:\n");
while(!feof(f1)){
fscanf(f1,"%d",&num);
if(num%2 == 0)
fprintf(f2,"%d ",num);
else
fprintf(f3,"%d ",num);
}
fclose(f1);
fclose(f2);
fclose(f3);
return 0;
}
,输出是
Enter the number:10
$ cat number.txt
1 2 3 4 5 6 7 8 9 10
$ cat even.txt
Even numbers:
2 4 6 8 10 10
$ cat odd.txt
Odd numbers:
1 3 5 7 9
为什么我获得两个10S在偶数输出?
[“while(!feof(file))”的可能重复始终是错误的](http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong) – 2014-11-21 07:54:39