使用scanf的返回值可以很容易判断输入是否为数字。
根据scanf返回值的描述:
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d,%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0如果遇到错误或遇到end of file,返回值为EOF。
所以,以下代码可以判断输入是否为十进制数字。如果输入字符或其他符号,ret值为0,如果输入为十进制数,ret为1:
int digit;
printf("please input a integer\n");
int ret = scanf("%d",&digit);
if(0 == ret)
{
printf("you should input a integer\n");
system("pause");
return 0;
}
与此例类似,利用scanf()的返回值也可以判断其他类型的输入。