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