宠物小精灵online:c语言文件的问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 22:44:56
while(i++<1000)
{a=getc(fp);
printf("%c",a);
}
if(a==EOF)
如果上面的文件只有几个字的话,后面输出什么?还有后面的比较又会怎样?
新手上路,前辈多帮忙.
QQ:471842509
后面的(a==EOF)判断是真是假?文件结束了,还一直停在那读吗?

如果i初始化为0的话,那么这个while循环会显示fp指向的文件中的前1000个字符。如果文件没有1000个字符,假设有100个,那么从101个字符开始,a读到的都是文件结束符,而文件结束符输出时是无法显示的,在屏幕上只有一个空格,所以程序会继续输出900个空格。

至于if(a==EOF),是用来判断是否到达了文件尾,你后面什么语句都没写,我也不知道会怎样。

实际上判断文件是否结束,是用feof(fp),但你用==EOF来判断也可以,EOF是一个宏,被定义为-1,而文件结束符其实就是-1。

你说的y上面有两点的好像是ASCII码254对应的字符,也就是-1。

while(!feof(fp))
{
a=fgetc(fp);
printf("%c",a);
}

源程序可以改为:

a=fgetc(fp);
while(a!=EOF)
{printf("%c",a);
a=getc(fp);
}