为什么scanf放在while循环中,只可以输入一次,后面就会一直循环不等我重新输入
时间: 2024-05-10 14:14:09 浏览: 70
嵌套循环_重复使用scanf.c
这个问题很可能是因为输入缓冲区中还有未读取的字符,导致scanf函数在循环中一直读取到了这些字符,而没有等待用户重新输入。解决这个问题的方法可以使用如下语句在while循环中清空输入缓冲区:
```
while(getchar() != '\n');
```
这样可以清空输入缓冲区中的所有字符,确保scanf函数能够等待用户重新输入。同时,还需要注意scanf函数的返回值,如果返回值不等于1,说明输入的格式不符合要求,需要重新输入。
阅读全文