帮忙解释一下fgetc函数的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:48:46
问题:如果想从一个磁盘文件顺序读入字符并在屏幕上显示出来,就可以用
ch=fgetc(fp);
while(ch!=EOF)
{putchar(ch);
ch=fgetc(fp);
}
帮忙解释一下第一个ch=fgetc(fp);和第二个ch=fgetc(fp);的区别和意思!
谢谢!!

ch=fgetc(fp)是读取fp指向的字符,赋值给fp,然后文件指针向后移一个字节。
区别就是第一个ch=fgetc(fp)是用来防止文件为空,所以先读入一个ch,看看是否为EOF。如果不加这一句的话,一开始ch什么都不是,何来的ch!=EOF呢。
第二个ch=fgetc(fp)之后就是正常读取字符了,没什么的
两个意思一样

意思相同,都是从文件读字符。但如果不写第一个,就无从判断ch!=EOF是否成立,必须先读一个才能判断
事实上这程序写的不好,一般都习惯这样写:
while(ch=fgetc(fp)!=EOF)putchar(ch);