我在想,我怎麼會能夠比較這是爲了保持整數值變量,來時候,它傳遞一個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