C++ 如何区分数字和字母输入
我想知道,我怎样才能比较一个应该包含整数值的变量和它被传递一个char值的时间: 例如: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
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:什么?没有。我告诉过你该怎么做。我的例子中有什么你不明白的吗?