LINUX.ORG.RU

> Каким образом можно получить код нажатой клавиши (С/С++)? Например в цикле while(1){...}, не приостанавливая его выполнения (асинхронно)

ncurses должен помочь.

gaa ★★
()

Нумбер раз, смотрим open(2) и fcntl(2) на предмет O_NONBLOCK.
Нумбер два, смотрим код:

#include <termios.h>
#include <unistd.h>
#include <stdio.h>

int main()
{
	struct termios term;
	char buf;
	tcflag_t old_lflag;

	tcgetattr (0, &term);
	old_lflag = term.c_lflag;
	term.c_lflag &= ~(ECHO | ICANON);	
	tcsetattr (0, TCSANOW, &term);		
	while (read (0, &buf, 1))
	{
		if (buf == 4)
			break;
		printf ("%d\n", buf);
	}
	term.c_lflag = old_lflag;
	tcsetattr (0, TCSANOW, &term);
	return 0;
}

ShprotX
()

int kbhit(void), а потом getch().

andreyu ★★★★★
()

Если для иксов, то man 3 XGrabKey && man 3 XNextEvent.

friday ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.