关于 EOF 的问题,求解
/*输入字符,判断是否为字母,是字母就报告该字母在字母表中的位置*/#include <stdio.h>
#include <ctype.h>
int fun (char ch);
int main (void)
{
char c;
printf("请输入字符:\n");
while(scanf("%c", &c) != EOF)
{
fun(c);
if(fun(c) == 1)
printf("%c是个字母,它在字母表中的位置是:%d\n", c, (int)c - 64);
if(fun(c) == 2)
printf("%c是个字母,它在字母表中的位置是:%d\n", c, (int)c - 96);
if(fun(c) == -1)
printf("%c不是一个字母。请输入字符:\n", c);
scanf("%c", &c);
}
return 0;
}
int fun (char ch)
{
if(isupper(ch))//大写
return 1;
else if(islower(ch))//小写
return 2;
else
return -1;
}
ctrl+z不是在一行的开头输入就可以了吗?为什么我要输入两行才行?