{
int num
char str[40]
while(scanf("%d",&num)!=1)//当输入不是整数时
{
gets(str)//清空缓存区
printf("error!%s is not a number.input again.\n")
}
while (getchar()!='\n')
continue//跳过输入行的剩余部分
return num//返回输入的整数
}
只能通过在程序运行时提示输入整数。在读取中,C语言可以做有限度的判断。
如
int
a
if(scanf("%d",&a)!=1)
可以判断出是否成功读到了一个整型的输入。这种判断方式,对于错误输入,如输入字母等,可以得出结果。但并不稳妥。
比如
当输入12asbc时,scanf会截取12输入整数,并不会识别出错误。
又如,当输入为实数123.4556时,123会被成功读取。
所以,在C语言中,并不能靠输入完全判断是否为合法整数,此项只能靠提示进行约定。