怎么没人回答呢?还是我自己来吧。大家看看对不对。
#include<stdio.h>
#include <ctype.h>
int IsNum(void);
int main()
{
int a;
a=IsNum();
printf("您输入的是数字%d\n",a);
}
int IsNum(void)
{
int a;
printf("请输入1个数字:\n\n");//提示用户输入
while(a=getchar())
{
fflush(stdin);
//清空输入缓冲区
if(isdigit(a)==0 )// 用isdigi判断,为0表示不是数字
{
fflush(stdin);//清空输入缓冲区,以免输入一个字符后按回车时把回车认为是下一个输入
printf("这不是一个数字\n");
}
else //如果不为0,则表示是数字
break; //退出循环
}
switch (a)//对a的值进行选择。因为a存储的是ascii码。我需要的是十进制整数。
{
case 48: return 0;//ascii码48对应的十进制整数是0(以下类推)
case 49: return 1;
case 50: return 2;
case 51: return 3;
case 52: return 4;
case 53: return 5;
case 54: return 6;
case 55: return 7;
case 56: return 8;
case 57: return 9;
}
}