C语言中EOF是什么意思?

比如:while(scanf("%d%d",&a,&b)!=EOF)这句是什么意思?

首先这个代码scanf能写while里是因为scanf(“%d%d”)!=EOF本身是个逻辑判断,也就是真或者假,所以可以作为条件判断写到while里,也就是说EOF就是个数字,被定义为-1而已。

在我们进行包括scanf等的输入函数使用时,其实用户在cmd中的输入实际是存放于缓冲区当中,当用户键入回车那一瞬间,之前输入的数据才会被存进去,而这里无论是单个字符还是字符串,scanf的返回值呢是表示成功接受到的对象的个数。

那这里如果遇到特殊情况,比如缓冲区文件流满等问题,那么scanf将会被返回-1,这里不光是scanf,返回值为个数的函数,遇到文件流满大多都会返回-1,所以这个-1用的比较多,那么stdio.h就索性专门定义一个宏来表示,取EndOfFile(文件末尾的意思)的前三个字母即组成EOF,所以也就有了#defineEOF(-1)这样的话。

温馨提示:答案为网友推荐,仅供参考