关于一个 EOF 的判断,不明白有什么用,大家帮忙看看,谢谢
#include <stdio.h>#include <stdlib.h>
#include <ctype.h>
int get_int();
int main()
{
int x;
x = get_int();
printf("You entered %d.\n",x);
return 0;
}
int get_int()
{
int ch,i,sign = 1;
while (isspace(ch =getchar()))
;
if(ch != '-'&& ch != '+' && !isdigit(ch)&& ch != EOF) //为什么要检测EOF??
{
ungetc(ch,stdin);
return 0;
}
if(ch == '-')
sign = -1;
if(ch == '+' || ch == '-')
ch = getchar();
for(i = 0;isdigit(ch);ch = getchar())
i = 10 *i +(ch -'0');
i *= sign;
if(ch != EOF) //这个又有什么用呢?
ungetc(ch,stdin);
return i;
}
谢谢