Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何区分数字和字母输入_C++_Integer - Fatal编程技术网

C++ 如何区分数字和字母输入

C++ 如何区分数字和字母输入,c++,integer,C++,Integer,我想知道,我怎样才能比较一个应该包含整数值的变量和它被传递一个char值的时间: 例如: int i; cin >> i; if(i == integer) execute a command; else (if i == char) do something else here; 既然x不能保存字符值,那么当有人试图在i中输入字符值时,它会失败吗?将输入转换为字符串,然后尝试将其转换为整数(这里有很多选项,boost::lexical_ca

我想知道,我怎样才能比较一个应该包含整数值的变量和它被传递一个char值的时间: 例如:

int i;
cin >> i;
if(i == integer)
          execute a command;
else (if i == char)
          do something else here;

既然x不能保存字符值,那么当有人试图在i中输入字符值时,它会失败吗?

将输入转换为字符串,然后尝试将其转换为整数(这里有很多选项,
boost::lexical_cast
std::istringstream
std::stoi
,等等)。如果转换成功,则有一个整数;如果转换失败,则没有整数。下面是一个使用istringstream的示例:

std::string input;
std::cin >> input;
std::istringstream iss(input);
int x;
if (iss >> x)
{
    // success
}
else
{
    // failure
}
如果在输入不是整数的情况下,您不关心输入是什么,您可以直接在输入到
int
时检查失败:

int x;
if (cin >> x)
{
    // success
}
else
{
    // get cin out of the error state
    cin.clear();
}

将输入转换为字符串,然后尝试将其转换为整数(这里有很多选项,
boost::lexical_cast
std::istringstream
std::stoi
,等等)。如果转换成功,则有一个整数;如果转换失败,则没有整数。下面是一个使用istringstream的示例:

std::string input;
std::cin >> input;
std::istringstream iss(input);
int x;
if (iss >> x)
{
    // success
}
else
{
    // failure
}
如果在输入不是整数的情况下,您不关心输入是什么,您可以直接在输入到
int
时检查失败:

int x;
if (cin >> x)
{
    // success
}
else
{
    // get cin out of the error state
    cin.clear();
}

使用ctype.h函数检查变量的类型。 你应该得到这样的东西:

char i;
cin >> i;

if(isdigit(i))
{
 // if integer
}
else if(isalpha(i))
{
 //if character
}

使用ctype.h函数检查变量的类型。 你应该得到这样的东西:

char i;
cin >> i;

if(isdigit(i))
{
 // if integer
}
else if(isalpha(i))
{
 //if character
}

检查输入操作的结果,看它是否成功。听起来你的问题是:“如果我输入了
int I;cin>>I;
而有人输入了非整数的内容,会发生什么?”查看ctype:检查输入操作的结果,看它是否成功。听起来你的问题是:“如果我做
inti;cin>>i有人输入的不是整数吗?“查看ctype:如果我想让我成为整数的输入,我能做什么:if(I==true)执行命令,否则做点什么else@Josh:什么?不。我告诉过你该怎么做。我的示例中有什么你不明白的吗?所以,如果我想让我成为整数的输入,我能做什么:if(I==true)execute command else做点什么else@Josh:什么?没有。我告诉过你该怎么做。我的例子中有什么你不明白的吗?