想要判断用户输入的数据类型,那就不能使用scanf("%d",&a)或者scanf("%lf",&a)这种输入方式,因为无论输入什么样的数据,都会被强转为一种格式,既然如此,我们就使用字符串输入。
scanf("%s",c1);
这样的话就可以完整地保留用户输入的格式,之后再用读取字符串具体字符位置的函数strchr来找'.'若返回的不是空指针,就说明用户输入的是浮点数。
if(NULL != strchr(c1,'.'))
最后,把字符数组里装的字符型数据转换数据类型,传值到对应的整形/浮点型变量里。
sscanf(c1,"%d",&a);
注:sscanf和strchr都是头文件string.h里的函数。