我有GLFWkey_callback()
我試圖檢測是否按字母字符。我使用這個功能isalpha()。我注意到,某些鍵如Shift和Alt如字母字符,如果我執行以下處理的代碼:當安全使用`isalpha()`
#include <iostream>
int main()
{
// 340: printed int if the Shift key is pressed.
if(isalpha(340))
std::cout << "alpha" << std::endl;
else
std::cout << "not alpha" << std::endl;
return 0;
}
前面的代碼收率alpha
。我可以驗證傳遞給函數的整數範圍,但這沒有意義,因爲我沒有利用函數。 我的問題是否可以將任何整數傳遞給該函數並使用簡單的if語句驗證字母字符?在使用此功能的情況下,需要採取何種預防措施?
我不明白你的代碼中的評論。你從哪裏得到這個魔法340? –
*行爲是不確定的,如果ch的值不能表示爲unsigned char或不等於EOF。*這是不確定的行爲,你是誘導。 – t0mm13b
@ t0mm13b它說,但它實際上是不確定的?在這種情況下這將是340%256 == 84,即t內顯然是字母 –