Ncurses入门- 使用键盘

Posted Evan_Lai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ncurses入门- 使用键盘相关的知识,希望对你有一定的参考价值。

Ncurses入门(四)- 使用键盘

使用键盘

在之前的学习中,我们已经知道可以使用getch()来获得键盘输入,该函数一直等待(除非你规定了延迟时间),并会返回一个按键所对应的整数值。
例如:当你按下向上箭头键(UpArrow)时,它将会返回65;或按下F1键时,它将会返回80。
你可以这样使用它:

int ch;
ch = getch();

在Ncurses中,使用键盘控制,你还要开启cbreak模式,若你还需要功能键,你需开启keypad模式。
使用cbreak();keypad();来做到这些。

一个例子

我们来看以下例子,这个例子将会使你通过上下左右方向键来控制字符在屏幕上的移动。

#include <bits/stdc++.h>
#include <ncurses.h>

int main()
{

	initscr();
	start_color();
	clear();
	noecho();
	cbreak();

	int now_x = 10;
	int now_y = 10;
	mvprintw(now_y, now_x, "@$@");

	int ch;
	while (1)
	{
		ch = getch();
		mvprintw(0,0,"%d%d%d",ch,now_y,now_x);
		switch (ch)
		{
		case 65:
			--now_y;
			break;
		case 66:
			++now_y;
			break;
		case 68:
			--now_x;
			break;
		case 67:
			++now_x;
			break;
		}
		clear();
		mvprintw(now_y,now_x,"@$@");
		refresh();
	}
		
		
	endwin();

	return 0;
	}

这个程序存在一些问题,这意味着你可以通过修改它来做一个检测,避免字符跑出屏幕边界,试试吧!
至此,我们完成了这一部分。

以上是关于Ncurses入门- 使用键盘的主要内容,如果未能解决你的问题,请参考以下文章

ncurses:检测带有键盘的可打印字符

Ncurses入门-安装与使用

C指针原理(29)-Ncurses-文本终端的图形

使用 ncurses 接收异步用户和外部输入

ncurses color_content()给了我错误的值

C指针原理(33)-Ncurses-文本终端的图形