标签: c
当我尝试输入字符(尤其是字母)时,代码将导致无限循环。我可以知道为什么吗,并且在不添加任何新库的情况下可以采取任何补救措施吗?
PS。我只编码了一个月左右。
#include <stdio.h> int main () { int n; do { printf("Enter N: "); scanf("%d", &n); } while (n != 0); }
答案 0 :(得分:2)
如果scanf无法解析输入,它将保留在输入缓冲区中。下一次迭代scanf将读取完全相同的输入,并再次失败。
scanf
处理无效输入的一种常见方法是使用例如fgets,然后尝试使用sscanf对其进行解析,并记住检查它returns。
fgets
sscanf