
一个C语言的问题,我觉得很奇怪:下面是代码
#include<stdio.h>#include<conio.h>intmain(){charletter;printf("pleaseinputthefirstlet...
#include <stdio.h>
#include <conio.h>
int main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getch())!='Y')/*当所按字母为Y 时才结束*/
{
switch (letter)
{
case 'S':
printf("please input second letter\n");
if((letter=getch())=='a')
printf("saturday\n");
else if ((letter=getch())=='u')//发现一个奇怪的现象,想输出sunday时,第二个字母u必须要按两下才能输出来,同理,输出thursday也是,第二个字母需要按两下,但输出saturday和sunday都只按一下
printf("sunday\n");
else printf("data error\n");
break;
case 'F':
printf("friday\n");break;
case 'M':
printf("monday\n");break;
case 'T':
printf("please input second letter\n");
if((letter=getch())=='u')
printf("tuesday\n");
else if ((letter=getch())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':
printf("wednesday\n");break;
default:
printf("data error\n");
}
}
getch();
}
我想不通为什么,是与getch()的原理有关吗? 展开
#include <conio.h>
int main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getch())!='Y')/*当所按字母为Y 时才结束*/
{
switch (letter)
{
case 'S':
printf("please input second letter\n");
if((letter=getch())=='a')
printf("saturday\n");
else if ((letter=getch())=='u')//发现一个奇怪的现象,想输出sunday时,第二个字母u必须要按两下才能输出来,同理,输出thursday也是,第二个字母需要按两下,但输出saturday和sunday都只按一下
printf("sunday\n");
else printf("data error\n");
break;
case 'F':
printf("friday\n");break;
case 'M':
printf("monday\n");break;
case 'T':
printf("please input second letter\n");
if((letter=getch())=='u')
printf("tuesday\n");
else if ((letter=getch())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':
printf("wednesday\n");break;
default:
printf("data error\n");
}
}
getch();
}
我想不通为什么,是与getch()的原理有关吗? 展开
2个回答
展开全部
letter=getch() 的意思是从键盘获取一个按键,将其赋给letter。
即每出现一个getch() ,系统都要等待直到键盘的一个有效键被按下。如果要程序进入到
printf("sunday\n");
这里。你需要第一个按键只能按S,第二个按键不能按a(防止进入saturday),第三个按键必须是u,进入到printf("sunday\n");
总之,你程序设计和你的本意有出入,再想想吧
即每出现一个getch() ,系统都要等待直到键盘的一个有效键被按下。如果要程序进入到
printf("sunday\n");
这里。你需要第一个按键只能按S,第二个按键不能按a(防止进入saturday),第三个按键必须是u,进入到printf("sunday\n");
总之,你程序设计和你的本意有出入,再想想吧
参考资料: ogin-mem-pass
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询