while循环应用
先看代码
从结果中可以看出输入1234之后,并没有让我们输入Y/N就输出了确认放弃。
这其中存在一个问题就是:
无论是scanf,还是getchar,这两个函数都是在得到一些数据后,会有一个数据缓冲区,我们在输入1234之后scanf函数收到,但是我们输入了一个空格也就是\n,因为\n在缓冲区中,所以getchar函数接收到\n,运行之后直接得到“确认放弃”
以此推测:
在sacnf上加一句:getchar(); 可以解决代码的问题,但是解决不了根本问题,如果输入123 454,输出结果就会出先刚刚的问题:
所以while循环的作用有了:
在scanf下加上一句
while(ch=getchar() !=’\n’)
{
;
}
可以解决如图: