这段CODE有问题
#include<stdio.h>
void main()
{
char jkc;
printf("请输入星期的第一个字母:");
//scanf("%c",&jkc);
jkc=getchar();
switch(jkc)
{
case'm':printf("This is Monday!\n");break;
case'f':printf("This is Firday!\n");break;
case'w':printf("This is Wendesday!\n");break;
case't':printf("please input second letter:");
if((jkc=getchar())=='u')
printf("This is Tuesday\n");
else if((jkc=getchar())=='h')
printf("This is Thurday\n");
else
printf("data error\n");
break;
case's':printf("Please input second letter:");
if(jkc=getchar()=='a')
printf("This is Saturday!\n");
else if(jkc=getchar()=='u')
printf("This is Sunday!\n");
else
printf("Date error!\n");
break;
}
}
输入t 然后再输入u就提示Date error!
但是输入h就能正常打印This is Thurday
[解决办法]
加上fflush(stdin)就行了
fflush(stdin);
if((jkc=getchar())=='u')
......
[解决办法]
像楼上说的一样要用fflush(stdin),因为getchar()在你第二次读取时没有清空缓存,还是第一次的‘t',所以才会输出data error,如果楼主还是不明白可以逐语句调试。。