读到文件结尾时无法正常结束循环。此外也难以读取UNICODE中文
//从文件读出并数字格式显示字节//
#include <stdio.h>
#include <string.h>
unsigned char a[99];
int g,i;
FILE *fi;
void main()
{
fi=fopen("i2.txt","r");//打开i2.txt
printf("%d %d %d %d %d %d %d %d ",getc(fi),getc(fi),getc(fi),getc(fi),getc(fi),getc(fi),getc(fi),getc(fi));
while((g=getc(fi))>0)
{
if(g<0)goto end;
a[i++]=g;
printf("%d %d ",i,a[i-1]);
}
end: fclose(fi);
printf("i2.txt有%n字 ",i/2);
printf("%s ",a);
}
该程序所读的文件是个txt文件,ANSI格式。内容是:0012一乙二十丁厂七卜八人入儿匕几九刁了678
故障是:读到文件尾巴不结束循环,从而咚的一声程序停止运行。
即使把循环条件(g=getc(fi))>0改为(g=getc(fi))!=EOF也一样。
把getc(fi)改为fgetc(fi)也一样,把程序设为.cpp和.c也一样。
还有,如果所读文件换成UNICODE格式,那么连printf("%d %d ",i,a[i-1]);都出错。这又是啥原因?
是不是UNICODE字符不可用printf函数?http://zhidao.baidu.com/question/1511095598701004740.html