0
当我尝试从文件中读取整数时,代码最终读取的数字比预期的要多。为什么应用程序从文件中读取不正确的整数?
数据文件包含以下号码:
1111 111 222 333 444 555 666 777 888 -1
当我看到文件,它返回以下数字:
825307441 825307424 842150432 858993440 875836448
892679456 909522464 926365472 943208480 170994976
这究竟是为什么?
相关代码:
/* A file named data contains some integer numbers.write a program to
read these numbers and store the odd numbers in one file and store
the even numbers in file.*/
int main()
{
FILE *fp1,*fp2,*fp3;
int number;
fp1=fopen("DATA","r");
fp2=fopen("even","w");
fp3=fopen("odd","w");
printf("numbers in file are\n");
while((number=getw(fp1))!=EOF)
{
printf("%d\t",number);
}
fclose(fp1);
fp1=fopen("DATA","r");
while((number=getw(fp1))!=EOF)
{
if((number%2)==0)
{
putw(number,fp2);
}
else
{
putw(number,fp3);
}
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
fp2=fopen("even","r");
fp3=fopen("odd","r");
printf("\nnumbers in even file are\n");
while((number=getw(fp2))!=EOF)
{
printf("%d\t",number);
}
printf("\nnumbers in odd file are\n");
while((number=getw(fp3))!=EOF)
{
printf("%d\t",number);
}
fclose(fp2);
fclose(fp3);
return 0;
}
这是不是相当于[你自己的问题3小时前](http://stackoverflow.com/q/9176555/1151654)? 如果您在问题上取得进展但仍有问题,请编辑您的问题而不是创建新问题。更多的是:你没有接受任何关于上一个链接问题的答案。 – Eregrith 2012-02-07 16:20:45
@Eregrith,这似乎是一个不同的问题,所以可以问新的问题,但OP应该接受以前的问题的答案。 – Nim 2012-02-07 16:23:07