use*_*968 9 c scanf while-loop
#include <stdio.h>
int main ()
{
char loop='y';
while(loop != 'n') {
printf("loop? ");
scanf("%c", &loop);
if(loop != 'y') {
loop='n';
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我键入'y',他会重新启动while循环,但会在第二次忽略scanf并在此之后结束循环.有人可以帮忙吗?
cni*_*tar 16
确保scanf丢弃换行符.将其更改为:
scanf(" %c", &loop);
^
Run Code Online (Sandbox Code Playgroud)
sid*_*yll 10
您可能不得不输入换行符,以便输入到您的程序,对吧?第二次执行循环时,它会读取换行符,该行正在"等待"读取并自动退出循环('\n' != 'y').您可以使用此格式字符串使scanf忽略空格:
" %c"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11492 次 |
| 最近记录: |