我们在循环中利用scanf函数进行输入的时候一般都会遇到输入缓冲区中\n对循环操作的影响,对于此类问题的解决方案,我认为有以下几点,如有错误,请大家帮我指点一下。
- 在scanf下面引用getchar(); 清除\n
- 在scanf中输入\n,例如scanf("%d",&a); 改为 scanf("%d\n",&a);这样scanf就会多读入一个\n,使得这个\n不去下面的程序中胡作非为。
- 同上面一点,防止循环被\n影响,我们还可以在%d前面加上一个空格,这样\n会去跳过空格再读取数据,相互抵消了,例如scanf(" %d",&a);