当前位置: 代码迷 >> C语言 >> [求助]关于输入字符的switch()语句
  详细解决方案

[求助]关于输入字符的switch()语句

热度:533   发布时间:2007-10-13 10:56:13.0
[求助]关于输入字符的switch()语句

要改一个小小程序,要达到:输入:y,输出:continue!!!;输入:n,退出;输入其它的字符:没有反应.
现下面的输入Y或N还行,但要输入其它的东东,要怎么做会让它没反应而不是进入死循环?等我再输入Y的时候它又可以输出continue!!!.
谢谢大家了.

#include<stdio.h>
main()
{
char ch;
printf("Input 'Y' to continue or input 'N' to exit!");
ch=getchar();
switch(ch)
{
case'y':printf("continue!!!");break;
case'n':exit(0);break;
default:while(1){}
}
}

搜索更多相关的解决方案: switch  语句  字符  continue  

----------------解决方案--------------------------------------------------------
default:while(1){} // 输出非'y','n'时,是你叫程序进入死循环的啊
// 改成 default:break;
----------------解决方案--------------------------------------------------------
while(1)
{
ch=getchar();
switch(ch)
{
case'y':printf("continue!!!");break;
case'n':exit(0);break;
}
}
----------------解决方案--------------------------------------------------------
改了一下:
#include<stdio.h>
int main()
{
char ch;
printf("Input 'Y' to continue or input 'N' to exit!\n");
while(1)
{

ch=getchar();
getchar();
switch(ch)
{
case'y':printf("continue!!!\n");break;
case'n':exit(0);break;
default:break;
}
}
getchar();
return 0;
}
----------------解决方案--------------------------------------------------------

谢谢大家了.特别是'永夜的极光'和'yrj007'.我把'yrj007'的改了一下.

#include<stdio.h>
int main()
{
char ch;
printf("Input 'Y' to continue or input 'N' to exit!\n");
while(1)
{

ch=getch();
getch();
switch(ch)
{
case'y':printf("continue!!!\n");break;
case'n':exit(0);break;
}
}
return 0;
}

这样就达到我想要的效果了.输入的时候不在屏幕上显示,用的是getch().但我看书上好像没有关于getch()的用法.这是我到网上看到的.哪位可以给我讲讲getch();谢谢了


----------------解决方案--------------------------------------------------------
getch()只是读取一个字符``然后不做出任何反映``读入的时候不用按回车```

是在conio.h里```但是据说``这个头文件不是正规的```

我现在一般不用它了```都是用getchar()代替它```


----------------解决方案--------------------------------------------------------
谢谢版主了.现在明白了.
----------------解决方案--------------------------------------------------------
这样就可以
char ans;
scanf("%c",&ans);
do
{
....
.....
}while(ans=='y'||ans=='Y')
----------------解决方案--------------------------------------------------------
scanf("%c",&ans);
while(ans=='y'||ans=='Y')
{
....
.....
}
这样,我上面的写错了
----------------解决方案--------------------------------------------------------
建议把char ch;改为int ch;

[此贴子已经被作者于2007-10-13 20:38:06编辑过]



----------------解决方案--------------------------------------------------------
  相关解决方案