C语言中EOF是什么意思?

比如:while(scanf("%d%d",&a,&b)!=EOF)这句是什么意思?... 比如:while(scanf("%d%d",&a,&b)!=EOF)这句是什么意思? 展开
 我来答
蓝瑟一身
推荐于2019-11-08 · TA获得超过4782个赞
知道小有建树答主
回答量:193
采纳率:83%
帮助的人:31.8万
展开全部

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

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式