2020-7-27用C语言完成学生管理系统的增删改查时遇到scanf的问题,
在以往的学习过程中并没有注意到scanf函数还有返回值,通过返回值来判断输入的数据类型是否正确,在通过返回值来限制用户的输入。
输入为整数时:
当只输入一个值时
#include <stdio.h>
int main()
{
int i,d;
i = scanf("%d",&d);
//当前输入正确时res为1
//输入错误时res为0.
printf("res = %d",i);
return 0;
}
格式正确返回1,错误返回0.
输入n个值时
全部正确返回n,错误m个、返回n-m,也就是正确的个数,
一般情况遇不到,因为大多数编译器会警告,可能运行时还会崩溃,值得注意的时当scanf中的%d,没有全部赋值时返回的依旧是%d的个数,因为在输入时已经输入到缓冲区了,只是在赋值的时候,多余的被丢弃
#include <stdio.h>
int main()
{
int i,a,b;
i = scanf("%d%d%d",&a,&b);
//返回值res为3.
printf("res = %d",i);
return 0;
}