高分!!请高手帮忙解释一下.fread函数出错了!

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:42:52
#include<stdio.h>
void main()
{
printf("%c\n",'i');
return;
}
这个文件编译成try.exe,进行以下操作.

#include<stdio.h>
int main()
{
FILE *fp=NULL;
char a[1000];
if((fp=fopen("try.exe","r"))==NULL) {printf("error!!");return 1;}
fread(a,sizeof(char),1000,fp);
/*
这里写上你测试的语句.
*/
return 0;
}

我想问的是:
a[0x74],a[0x75],a[0x76],a[0x77]这几个数看一下
是不是和try.exe中相应位置一样.
我的编译环境是VC6.0
测试结果,a[0x75]位置读漏了一个字节,
即在try.exe的0x75位置有连续的两个0x0D,但读到a数组里只剩一个0x0D了.
我把try.exe的0x76位置的0x0D改为其它的值,数组a在这个位置又对了.
我想请高手指一条明路小弟走,怎样才可以完整地把文件读取出来,而不会像这样少读了一个字节.
高金山朋友,谢谢你的回答,这样虽解决了读取的问题,但在这个例子中成立难以保证不会在其它例中子出错,像用"r"参数一样.
我只要把文件改一下,"r"参数也能正确读出.也就是说,这个文件刚好让"r"参数出错了.
我关心的是错误本身.
我想知道这种错误原因.应该是系统的错,我是想找出这种错是错在哪个环节.并找到解决这个错误的办法.
在此附上fread的实现细节,望指出在哪里读漏了一个字节.
请汇编程序高手帮忙解释一下: 请文学高手帮忙解释一下 请高手帮忙解释一下!(Java) 古文高手请帮忙解释一下 高分请高手帮忙! ”有缘无份,有份无缘”请高手帮忙解释一下,满意有高分 请反毒高手帮忙 高分 高分请高手帮忙C++ 请高手帮忙用英文解释一下 请高手来帮忙解释一下,解决一下~!