我在想,我怎么会能够比较这是为了保持整数值变量,来时候,它传递一个char值区分: 例如:如何数字和字母输入
int i;
cin >> i;
if(i == integer)
execute a command;
else (if i == char)
do something else here;
由于x无法保存字符值,当某人尝试在i中输入字符值时它会失败吗?
我在想,我怎么会能够比较这是为了保持整数值变量,来时候,它传递一个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();
}
使用ctype.h函数检查变量的类型。 你应该得到这样的事情:
char i;
cin >> i;
if(isdigit(i))
{
// if integer
}
else if(isalpha(i))
{
//if character
}
检查输入操作的结果,看看它是否成功。 – chris
这听起来像是你的问题真的是:“如果我做'int i; cin >> i'会发生什么事?'和某人不是整数的东西? –
看看ctype:http://www.cplusplus.com/reference/std/locale/ctype/is/ – Annabelle