C++ 如何判断一个变量是否为整型,而非字符等?

例如:
unsigned int a;
cin>>a;
如何判断从屏幕输入的参数是非负整数,而不是字符、小数、字符、负整数等?

看声明

如果声明的时候用的类型是 int ,变量就是 int 类型的。

如果声明的时候用的类型是 char ,变量就是 char 类型的。


控制台的输入没有类型之说。由程序员考虑当输入符合什么格式的时候,能被程序认为是“合理”的输入。对于

unsigned int a;
cin>>a;

可以简单地假定“只要 cin 认为它是合理的输入,就是合理的输入”。此时只需检查

cin.fail()

即可。如果 cin.fail() 返回 true ,就说明输入格式不正确,是不合理的输入。否则就是合理的输入

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-22
#include<bits/stdc++.h>        //万能头文件
using namespace std;
int main(){
    char *userinput;
    userinput = new char;
    scanf("%s",userinput);
    char *compare;
    compare = new char;
    sprintf(compare,"%d",atoi(userinput));
    if(!strcmp(userinput,compare))
        printf("YES");
    else
        printf("NO");
}

第2个回答  2015-04-19
int a;
if(typeid(int) == typeid(a))
{
cout << "Dear, a is int~~" <<endl;
}本回答被网友采纳
第3个回答  2015-04-19
没有判断, 你想是什么型,它就是什么型

C++ 如何判断一个变量是否为整型,而非字符等?
看声明 如果声明的时候用的类型是 int ,变量就是 int 类型的。如果声明的时候用的类型是 char ,变量就是 char 类型的。控制台的输入没有类型之说。由程序员考虑当输入符合什么格式的时候,能被程序认为是“合理”的输入。对于 unsigned int a;cin>>a;可以简单地假定“只要 cin 认为它是合理的输...

c++如何判断一个数是不是整型
cout<<"不是整数\\n";

c\/c++如何判断变量的数据类型?
c\/c++判断变量的数据类型可以采用下面的代码:include <typeinfo> using namespace std;...cout << typeid(d).name() << endl;

C++中,定义变量的时候,怎么判断是实型还是整型?
一般整型 int a 长整型 long (int) a \/\/括号里面可要可不要 无符号整型 unsigned int a 单精度型 float a 双精度型 double a

c++中怎么确定一个数是否为整数,用什么函数
~ 你学过 sizeof() 这个函数不?你用 sizeof(参数1) 参数1 为你想判断的数 , 如果得出结果为 4 则为整数 ~这个绝对可用 且绝对为 c++ 也有的 ~

c++中如何判断一个算式的值是否为整数
if(a==int(a))count++;但是首先你的a需要是各浮点数而不能是整型啊 而float a=(2*n-i*i-i)\/2*i;这句话,即使你声明了a是个float,但也只能得到一个整型值,所以你怎么判断a和b都是相等的 这样改float a=(2*n-i*i-i)\/2.0*i;分子分母有一个数是浮点数就可以了,所以可以把2改成2...

用c++判断一个数是否是整数的程序。一下是我的源代码(dev c++),能解决...
如果你使用的是GNU C++编译器,可以直接调用RegEx.h中的相关函数。否则,你可以把这个正则表达式转化成确定状态自动机(DFA),计算出每个状态下的转移函数,就可以很容易地判断出一个串是不是整数了。当然,你也可以直接构造出DFA。OK。现在只需要按照状态,再根据不同的输入进行状态的转移就可以了。

C++怎样判断用户输入的数是否为整型
既然是判断是否是整型,那么存储输入数的变量肯定就是一个字符串对吧 那么只需要判断是否包含小数点不就好了么

C++中如何判断一个输入是不是整形
改为字符串输入,通过字符变量去判断是否属于整形 参考 include <iostream> using namespace std;bool check( char *str ){  int i; for ( i = 0; i < strlen( str ); i++ ) if ( str[ i ] < '0' || str[ i ] > '9' ) return false; return true;} i...

c++中判断数据类型
int a;if(typeid(a) == typeid(int)) cout<<"int";if(typeid(a) == typeid(float)) cout<<"float";typeid和sizeof一样是个运算符,我一直很奇怪为什么很少人提到它

相似回答