新手求教个输入输出问题
int choose(int int);//这是输入个数字,如果数字在范围之类则返回该数字void prin(void);//这是打印一行字的,没什么意义
int main()
{
int min=1,max=4;
int ch;
prin();
while((ch=choose(min,max))!=4){
switch(ch)
{
case 1:.....
............
}
}
return 0;
}
问题我感觉是主要下面这个函数:
int choose(int m,int n)
{
int ch;
if(scanf("%d",&ch)!=1){
while(ch<m||ch>n){
prin();
getchar();
scanf("%d",&ch);
}
}
return ch;
}
这是我后面改的能运行的,我乱搞的,不过我不能理解,请大家指点下,先谢谢了!!
1:为什么要加个getchar(),不加会死循环,不停的输出prin()(当你输入字母的时候),我知道是scanf()不读换行和回车,和getchar()一起回有问题,
不过我我自始至终也没用getchar(),不懂
2:我开始是把scanf(“%d",&ch)并到while()里面的,而且我也加了getchar(),但是在运行的时候,先输入字母后,要连续输入2次数字才有反应,这是什么回事?
(问题1在2中也是一样,不加getcgar(),也会死循环)