输入字符会导致无限循环

时间:2019-12-03 12:59:32

标签: c

当我尝试输入字符(尤其是字母)时,代码将导致无限循环。我可以知道为什么吗,并且在不添加任何新库的情况下可以采取任何补救措施吗?

PS。我只编码了一个月左右。

#include <stdio.h>

int main () {
int n;

    do {
        printf("Enter N: ");
        scanf("%d", &n);
    } while (n != 0);

}

1 个答案:

答案 0 :(得分:2)

如果scanf无法解析输入,它将保留在输入缓冲区中。下一次迭代scanf将读取完全相同的输入,并再次失败。

处理无效输入的一种常见方法是使用例如fgets,然后尝试使用sscanf对其进行解析,并记住检查它returns

相关问题