该代码在zuo ye程序运行时可以通过,但是我自己输入11位数字并换行用ctrl+z结束时总是会读取到换行符,导致失败,请问怎么解决,或者zuo ye程序结束时为什么不会读到换行符。
#include<stdio.h>
int main(){
char s[100];
int i=0;
char c;
int a;
while(c!=EOF)
{
c=getchar();
s[i]=c;
i++;
}
if(s[11]==EOF&&s[10]!=EOF&&s[9]!=EOF&&s[8]!=EOF&&s[7]!=EOF&&s[6]!=EOF&&s[5]!=EOF&&s[4]!=EOF&&s[3]!=EOF&&s[2]!=EOF&&s[1]!=EOF&&s[0]!=EOF)
{
for(a=0;a<11;a++)
{
if(!('0'<=s[a]&&s[a]<='9'))
printf("字符串中存在非数字字符");
if(!('0'<=s[a]&&s[a]<='9'))
break;
}
if(a==11)
{if(s[0]=='1')
{
if((s[1]=='3')|(s[1]=='4')|(s[1]=='5')|(s[1]=='7')|(s[1]=='8'));
else printf("第2位不合法");
}
else printf("第1位不合法");}
}
else
printf("长度不合法");
printf("%d",s[13]);
}