Linux下getch的使用示例(不需要按回车键,输入字符)

由于getch输入不需要按回车键,故在一些需要快速输入的场合很有用,以下提供一个例子,希望和大家一起分享。

前面出了一篇关于Windows的,这个是在Linux下使用的。由于Linux使用较少,存在不足之处大家多包涵。

/* getch的使用示例

在提供了Curses库的UNIX/Linux/OS X环境下运行

 */

#include <curses.h> //UNIX/Linux下的库,定义了getch();等函数
#include <ctype.h>
#include <stdio.h>

int main(void)
{
int ch;
int retry;

initscr(); //生成屏幕并初始化库,使用Curses库时必须最先调用该函数
cbreak(); //禁止行缓冲
noecho(); //禁止输入的字符显示在画面上
refresh(); //刷新画面

do {
printf("请按键。");
fflush(stdout);

ch = getch(); //返回输入的字符
printf("\n\r按下的键是%c,值是%d。\n\r",
//Curses库的特点:1.输出\n\r光标才会移到下一行开头
isprint(ch) ? ch : ' ', ch);

printf("再来一次?(Y/N):");
fflush(stdout); //2.即使输出\n也需要将堆积在缓冲区的未输出字符清空
retry = getch();
if (isprint(retry))
putchar(retry);
putchar('\n');
fflush(stdout);
} while (retry == 'Y' || retry == 'y');
endwin(); //使用库时用于最后收尾的函数,使用Curses库时必须最后调用该函数(画面字符全部消失)
return 0;

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值