c语言怎样判定输入的数据时一个整型数据

C语言中输入一个数据(程序需要一个整型数据),为了保证程序的健壮性,怎样判定输入的数据为整型数而不是其它的。

因为输入float时,系统也会把float变成整型,所以只需要处理非数值型就可以了,程序如下
void main()
{int a, i;
i = scanf("%d",&a); // 读成功,则返回成功读入的数据个数,这里为i=1,不成功则返回i=0
if (i==1) printf("%d",a);
else printf("input error !\n");
}
system("PAUSE");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-30
你用键盘输入的都是ascii码,0~9是有个范围的,判断下就好了。

c语言怎样判定输入的数据时一个整型数据
因为输入float时,系统也会把float变成整型,所以只需要处理非数值型就可以了,程序如下 void main(){int a, i;i = scanf("%d",&a); \/\/ 读成功,则返回成功读入的数据个数,这里为i=1,不成功则返回i=0 if (i==1) printf("%d",a);else printf("input error !\\n");} system("PA...

C语言,判断输入的数是否是正整数?
思路是:一个小数浮点变量和一个整型变量。输入浮点变量,先然后将浮点变量中存储的数赋值到整型变量中,整型变量自动去除小数部分。将两者比较,如果浮点变量等于整形变量,并且还要看一下是不是正数。如果满足这两点,就说明浮点变量小数点后没有数,而且是正数,就输出“是正整数”。否则直接输出“不是...

c语言怎样判断输入的变量是整型
int f(float x){ float a;a=x-(long int)x;if(a==0&&x==fabs(x))return 1;else return 0;} int main(){ float n;printf("input your n: ");scanf("%f",&n); while(!f(n)){ printf("illegal input! input your n again: ");scanf("%f",&n);} printf("your input ...

c语言怎样判断输入的变量是整型
int f(float x){ float a;a=x-(long int)x;if(a==0&&x==fabs(x))return 1;else return 0;} int main(){ float n;printf("input your n: ");scanf("%f",&n); while(!f(n)){ printf("illegal input! input your n again: ");scanf("%f",&n);} printf("your input ...

C语言中怎样判断输入的是整数还是浮点数
先存成字符串,判断有没有小数点,再从字符串格式化成整型或浮点型。include <stdio.h> include <stdlib.h> include <string.h> \/\/char *strchr( const char *str, int ch );int main(int argc, char *argv[]){ int a = 0;double b = 0;char str[10]="";scanf("%s",str); ...

C语言中怎么要求输入的必须是整数
只能通过在程序运行时提示输入整数。在读取中,C语言可以做有限度的判断。如 int a;if(scanf("%d",&a)!=1)可以判断出是否成功读到了一个整型的输入。这种判断方式,对于错误输入,如输入字母等,可以得出结果。但并不稳妥。比如 当输入12asbc时,scanf会截取12输入整数,并不会识别出错误。又如,...

在C语言中如何判断输入的内容为整数!!! 本人定义的是整型,想让当输入其...
先使用scanf把输入放到一个字符串str,然后对字符串str使用sscanf,判断sscanf的返回值 char str[1024];scanf("%s", str);int a;char tmp[1024];\/\/用来放垃圾 if(1 == sscanf(str, "%d%s", a, tmp)){ printf("是一个整数\\n");} ...

C语言中如何判断输入的数是否为整数?
{ int a[N],i,j,t,*p;printf("请输入%d个任意整数:\\n",N);p=a;for(i=0;i<N;i++){ scanf("%d",(p+i)); \/\/建议写成 &p[i]if(*(p+i)-(int)(*(p+i))==0) \/\/你这里写错了,已经给你改了,建议写成 p[i]-(int)p[i],下面的一样建议写成这种形式,方便看 prin...

怎样判断给出的数据是不是C语言的整型常量,如-012,0x35,123L,8E2_百度...
1. 整型常量是C语言中表示数据类型的一种常量,它包括十进制、八进制和十六进制三种形式。2. 十进制整数是我们在日常生活中常见的数字形式,例如123、-120等。3. 八进制整数以0开头,例如0123表示八进制数123,其值为十进制数83。4. 十六进制整数以0x开头,例如0x123表示十六进制数123,其值为十...

C语言中如何区分输入的是整型数还是浮点数
看你的类型了,int num;就是整型 float num;就是浮点型 输入的时候,1和1.00是没区别的

相似回答