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

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

上一篇:minicom 安装 查看串口


下一篇:Ncurses入门-(一)安装与使用