为啥do while不能返回?
大佬们帮忙看看# include <stdio.h>
int main(void)
{
char k;
int val;
do
{
printf("请输入您想去的楼层:\n");
scanf("%d",&val);
switch(val)
{
case 1:
printf("1层开!\n");
break;
case 2:
printf("2层开!\n");
break;
case 3:
printf("3层开!\n");
break;
default:
printf("该层不存在!请重新输入:\n");
}
printf("您想重新输入楼层吗?y想!n不想!\n");
scanf("%c",&k); //这里输入后,按回车就会多一个空格
while(getchar()!='\n');
}
while('y'==k);
return 0;
}
提示重新输入,输入y按回车后,Y后面会多一个空格,然后就提示按任意键结束。这是怎么回事呢? 你可以先试试在25行后面printf一下k的值,验证一下是不是你输入的y
我觉得是前面的前面的scanf在输入流中残留了回车键,如果如此,可以在25行前面加一句 getchar(); BngThea 发表于 2019-6-19 10:18
你可以先试试在25行后面printf一下k的值,验证一下是不是你输入的y
我觉得是前面的前面的scanf在输入流中 ...
经过测试,就是24行最后的换行符的问题。增加一个getchar()就解决问题了。万分感谢~!
页:
[1]