为了账号安全,请及时绑定邮箱和手机立即绑定

求助,关于c语言循环输入scanf的问题,如下所示:

求助,关于c语言循环输入scanf的问题,如下所示:

小唯快跑啊 2021-02-23 19:15:26
do{printf("\n是Y/否N进行新的计算: (Y/N) ? ");// getchar();scanf("%c",&W);printf("\n%c,%d",W,W);if(((W=='Y')||(W=='y'))!=1)break;}while(1);经过测试发现若是输入Y或y后,第二次自动跳出。检测发现是scanf未能连续输入。为什么为什么?????????????
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

do { printf("\n是Y/否N进行新的计算: (Y/N) ? ");
// getchar();
scanf("%c",&W);
printf("\n%c,%d",W,W);

fflush(stdin);
if(((W=='Y')||(W=='y'))!=1) break;
} while(1);
这样既可

知道为什么么?假设你只是输入一个 Y 然后回车,scanf函数也只是读取了Y这个字符而已,你的回车符没有被读走,于是下一次循环的时候,scanf读取到的就是一个回车符,因为退出了循环,就那么简单



查看完整回答
反对 回复 2021-03-16
  • 2 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信