该怎的理解文件结尾,如果用getc()函数读到文件结尾了,还接着往下读会出现什么情况
该怎样理解文件结尾,如果用getc()函数读到文件结尾了,还接着往下读会出现什么情况
下面这是一个程序的一部分,加与不加注释行,都可以得到正确结果;
------解决方案--------------------
while((ch=fgetc(fp))!=EOF)
------解决方案--------------------
EOF 不是文件内容
是函数fgetc 读取失败的返回值
------解决方案--------------------
读到文件尾,没数据了怎么继续读啊,肯定会中止啊。
------解决方案--------------------
EOF = End Of File, 没有对应的字符
下面这是一个程序的一部分,加与不加注释行,都可以得到正确结果;
if (ch1 != EOF || ch2 != EOF)
{
putchar ('\n');
//if (ch1 != EOF) // 注释掉的两行可以加上,可以确保ch1或ch2 达到EOF不往下读了
ch1 = getc (f1); // 但如果去掉了,有可能ch1 或ch2 达到EOF了,getc语句还会读取文件
//if (ch2 != EOF) //中的内容,还是EOF吗? EOF文件结尾也想‘\0’空字符一样吗?
ch2 = getc (f2); //还是达到文件结尾以后的字符都是EOF?
}
------解决方案--------------------
while((ch=fgetc(fp))!=EOF)
------解决方案--------------------
EOF 不是文件内容
是函数fgetc 读取失败的返回值
------解决方案--------------------
读到文件尾,没数据了怎么继续读啊,肯定会中止啊。
------解决方案--------------------
EOF = End Of File, 没有对应的字符