我有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内显然是字母 –