读书人

isalpha()函数为何过滤不出方向键、In

发布时间: 2012-05-13 16:39:43 作者: rapoo

isalpha()函数为何过滤不出方向键、Insert、Home、Delete、End等键?

C/C++ code
#include "ctype.h"#include "conio.h"int main(){    char c;    while(1)    {        if(isalpha(c = getch()))        {            putch(c);        }    }        return 0;}


控制台程序:
要求只能输入英文字母a-z或者A-Z
但上面这段程序 当你按了方向键Up、Down、Left、Right,或者F8、F9、Insert、Delete、Home、End等键后,
依然能打印出来呢? 为什么?
怎么能过滤掉这些呢?
谢谢

[解决办法]
C/C++ code
    while(1)    {        int n = getch();        if(isalpha(n))        {            putch(n);        }        else if(!isprint(n))        {            n = getch();        }    }
[解决办法]
自己判断吧。
C/C++ code
#include "ctype.h"#include "conio.h"int main(){    char c;    while(1)    {        if(c = getch())        {          if(c>='a'&&c<='z' || c>='A'&&c<='Z')            putch(c);        }    }        return 0;} 

读书人网 >C++

热点推荐