C++ 高手救命啊

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:05:41
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:....;break;
case 2:....;break;
case 3:....;break;
default:....;
}

这个东西很简单,不过呢,有个地方很麻烦,如果你用的%d接收 choice,而输入的是字符,它就会进入死循环, 这个问题如何解决呀!
不要跟我说用getchar()或者定义成char,那样更痛苦! 回车也是字符,
还得定义一个变量接收回车! 不过问题不是一个地方有回车输入,
哪位大虾有可行性高点的招咯? 或者能解决问题的办法,大家给点建议咯,小弟感激不尽
晕,行不通呀,问题照样在!

if(scanf("%d",&choice)==EOF)
{
printf("输入错误!!");
}
else
{
switch(choice)
{
case 1:....;break;
case 2:....;break;
case 3:....;break;
default:....;
}
}

default后面为什么不写 break?

对啊,default:....; 要加break;的啊。。。这里的default:....; 就包含了你说的那种异常输入的情况----输入的是字符,而本身其实你希望输入的是INT型。。。