问题描述
在编写C语言程序时,需要使用
scanf
语句从键盘读入一个整数,但是在测试的时候,如果不小心输入了浮点数或者字符的话,那情况就糟了。
比如如下代码:
#include <stdio.h>
int main()
{
int a = 0;
while (1)
{
scanf("%d", &a);
printf("%d\n", a);
}
}
错误展示1(输入浮点数的错误示范):
错误展示2(输入字符的错误示范):
我们发现,误输入浮点数或者字符,都会导致死循环。
解决过程
要想解决问题,首先得了解scanf()函数。
scanf()函数是C标准库stdio里面定义的用于获取用户输入的函数。scanf的返回值是已经成功赋值的变量个数。
查阅资料发现,当我们要求scanf语句接收整型数值时,