关于EOF 经常出现的 XXX != EOF

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:19:19
刚学C 看书的时候经常看到比如
int status;
int a;
int b;
……………………
status = scanf("%d%d", &a, &b);
if (status == 2)
{………………};
if (status != EOF)
{………………}; 这里的EOF是什么意思啊?
我知道 我看过很多关于EOF的回复 这里跟end of file没联系。 这里跟-1有什么关系? statu 只会等于 0,1,2 意思是只要不等于2的话就执行(statu != EOF)的命令?那还不如直接输 else {…………}就完了? 上面那写错了 是else if(status != EOF)

EOF 是定义的一个宏,是end of file,也就是文件结束的意思,一般等于-1

scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。