scanf函数对异常输入的处理
标签(空格分隔): C 双学位高级语言程序设计 编程窍门 C输入输出
如果想用C语言的scanf函数筛选正常输入,过滤异常输入,那便可以用scanf函数的返回值了。
scanf函数有返回值,但是我们一般都仅用其输入功能。返回值用法如下。#includeint main(){ int a; ret = scanf("%d",&a); while (ret != 1) { while (getchar() != '\n'); ret = scanf("%d",&a); }}
scanf返回值的意思是正确读入的数据项数。当输入非整型时,判断为0,进入第一个while;之后,如果接下来未按回车,即换行符,会一直重复第二个while流程,将接下来输入的所有数据存入缓冲区中;while后面跟“;”的意思是这个循环是空循环,满足条件便会一直重复。直到输入回车,getchar将所有数据读走,重新输入数据,判断是否为整型数,为真,则读入;为假,则重复上述流程。