Icon

Littleor

11491 分类: 闲语

C语言基础-scanf类型错误导致无限循环

scanf类型错误导致无限循环

int i;
scanf("%d",&i);

当使用上述代码,而输入的非整型会导致程序陷入死循环至崩溃,这就导致无法正确提示用户输入正确字符,而是只能创新启动程序.

解决方法

char c;
while((c = getchar()) != '\n' && c != EOF);

解决方法只需要把上述代码放到scanf后面即可.

原理

使用getchar将错误清除缓存,避免因之前的错误进入死循环.

#none

作者: Littleor

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论