if (a % 5) {
goto ask;
}
else {
goto main;
}
ask:
printf("Do You Want To Exit ? Y \\ N . . . \n");
scanf("%c", &YN);
getch();
if (YN == 'Y') {
y:
system("cls");
YN = 1;
goto sign;
}
else if (YN == 'y') {
goto y;
}
else if (YN == 'N') {
n:
system("cls");
YN = 0;
goto sign;
}
else if (YN == 'n') {
goto n;
}
else {
printf("Sorry ..Didn't Catch that ... ");
goto ask;
}
有人可以帮助我理解出了什么问题吗?
由于某种原因,我从这段代码中得到的输出是
“你想退出 y\n 吗?”
获取查...
“抱歉,没听清楚,你想退出 y\n 吗?”
看起来就像是跳过了scanf()
第一次,节目直接进入else
==> "sorry i didnt get that"
只有在第二次时它才弄清楚如何使用scanf()
.
scanf()
reads characters with %c
and yes, the ENTER key press [after your previous input] is pretty much vaild for %c
[Check the below spoiler].
按 ENTER 键 == 换行
use
scanf(" %c", &YN); //mind the space brefore `%c`
^
|
忽略任何先前存储的[还有前导]空格[包括换行符。]
Note: This also eliminates the need for your getch();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)