两个调用的函数不一样 getchar如果是读到文件末尾的话就返回EOFeof和null区别,EOF的值其实是1,表示的是 end of file的意思 gets的话是返回一个指针的,如果读到eof和null区别了文件末尾就返回空了,也就是NULL。

EOF表示的文件结尾条件end of file的意思,这是在读取文件的时候才会出现的一个结束输入的符号,但是可以用键盘模拟,在windows系统中,按下Ctrl+Z和回车键来模拟EOF条件,UNIX和Linux用户应按Ctrl+D来模拟NULL其实就是0的字面表示法,可用于赋值给数组,字符串,指针等变量。

在文本文件中,数据都是以字符的ASCII代码值的形式存放我们知道,ASCII代码值的范围是0~127,不可能出现1,因此可以用EOF作为文件结束标志scanf函数只有在第一个参数为NULL空指针的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数=0所以,这个循环,将是一个死循环。

EOF是文本文件的文件结束标志,NULL是打开文件错误时的返回值foeffp用来判断文件位置指针是否在文件末尾,文本文件和二进制文件均可以使用此函数如果遇到文件结束,就返回1,否则返回0。