dos环境下控制键盘输入问题,望高手指点。。。

xjlqlqlq 2003-08-20 12:52:30
在图形界面下控制键盘输入轻而易举,,,是 但在dos 控制台界面下如何实现(最好用标准C实现)呢?想了很久,未果,望有经验者或高手指点。。。
在此先谢。。。
...全文
71 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chon81 2003-08-21
  • 打赏
  • 举报
回复
/*只能输入数字*/
#include "stdio.h"
#include "conio.h"

main()
{
char c;
int n=0;
while((c=getch())!=13) //一直循环,直到按回车
{
if(c>=48 && c<=57) //输入的是数字键
{
n=n*10+c-48;
putchar(c);
}
else //输入的不是数字键
{
if(c=='\b' && n!=0) //要是为退格键且n不是为零
{
printf("\b \b"); //光标后退
n/=10;
}
}
}

printf("%d",n);
getch();
}
GhostAdz 2003-08-20
  • 打赏
  • 举报
回复
“而在控制台界面中不出现其它字符,既使敲了键盘也不出现,只出现合格字符,和按规定格式输入,”

呵呵 这个简单
int GET;
do
{
GET=getch();
}
while(GET>57||GET<48);
printf("%d",GET);
98440622 2003-08-20
  • 打赏
  • 举报
回复
用getch不回显,用putchar选择显示
xjlqlqlq 2003-08-20
  • 打赏
  • 举报
回复
谢谢大家。。。
我的意思是输入如下:
1234,2345,7891,。。。。
而在控制台界面中不出现其它字符,既使敲了键盘也不出现,只出现合格字符,和按规定格式输入,
谢谢大家的发言,
希望大家踊跃发言。。。
fancy123 2003-08-20
  • 打赏
  • 举报
回复
getch()好
98440622 2003-08-20
  • 打赏
  • 举报
回复
呵呵 ,改写键盘中断
luckysky 2003-08-20
  • 打赏
  • 举报
回复
还是用getch()比较方便点。
wide288 2003-08-20
  • 打赏
  • 举报
回复
楼上用的正是我现在用的方法。
leafxx 2003-08-20
  • 打赏
  • 举报
回复
不用bioskey(),用getch()也行
比如
#define ESC 27

if ( getch()==ESC )
....
made_in_ 2003-08-20
  • 打赏
  • 举报
回复
楼上都说了。
sjjf 2003-08-20
  • 打赏
  • 举报
回复
如果你只想取得非控制的字符的话,那么用getchar,scanf()之类的都行,如果你想取得
控制字符的话,用biosdey(),然后分析扫描码。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧