首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-05-13 
isalpha()函数为何过滤不出方向键、Insert、Home、Delete、End等键?C/C++ code#include ctype.h#include co

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;} 

热点排行