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读取到的就是一个回车符,因为退出了循环,就那么简单
添加回答
举报
0/150
提交
取消