请教:读二进制文件的问题
附件中三个文件,
FILEREAD.C
FILEREAD.TXT
PMRES
fileread.c 要读取二进制文件PMRES中的内容,并在屏幕上显示十六进制数。
问题:
1、碰到 0D的BYTE,程序读不出来,当然在屏幕上也显示不出来。
2、屏幕输出重定向文件:FILEREAD.TXT截止到第一个内容为1A的BYTE,下面的内容就读不出来了。
源程序如下:
#include<stdio.h>
main()
{
FILE *fp;
int ch;
int i=0;
if((fp=fopen("pmres","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while (!feof(fp))
{
/*putchar(ch);*/
if(i<16)
{
i++;
printf("%02x ",ch);
}
else
{
i=0;
printf("\n%02x " ,ch);
i++;
}
ch=fgetc(fp);
}
printf("\n\n\n");
fclose(fp);
}
请指教。
俺下班了,明天来看。
对了,俺用的是TC20
下班后,用C-FREE编译后执行,上述第一个问题解决了。但是为什么?
[此贴子已经被作者于2007-5-31 23:55:21编辑过]