Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Работа с клавиатурой С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Работа с клавиатурой С++
Имя
Сообщение << Старые топики   Новые топики >>
Работа с клавиатурой С++ - 2008-07-29 11:28:14.653333   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
Есть проблема: нужно чтобы программа ( язык С++ , ОС Linux , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает.
Post #: 1
RE: Работа с клавиатурой С++ - 2008-07-29 11:49:03.466666   
Wlada

Сообщений: 1233
Оценки: 0
Присоединился: 2007-09-24 12:01:26.970000

quote:

ORIGINAL: Pavel_b86

Есть проблема: нужно чтобы программа ( язык С++ , ОС Linux , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает.

если знаешь как перепиши прогу что бы она при запуске просила ввести клавишы навиации типа этого:
нажмите влавишу влево
нажмите клавишу вправа
нажмите клавишу вверх
нажмите клавишу вниз
наж….и т.д.
Post #: 2
RE: Работа с клавиатурой С++ - 2008-07-29 12:16:00.750000   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
quote:

ORIGINAL: Wlada

quote:

ORIGINAL: Pavel_b86

Есть проблема: нужно чтобы программа ( язык С++ , ОС Linux , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает.

если знаешь как перепиши прогу что бы она при запуске просила ввести клавишы навиации типа этого:
нажмите влавишу влево
нажмите клавишу вправа
нажмите клавишу вверх
нажмите клавишу вниз
наж….и т.д.


Дело не в этом а в том что я не знаю как сделать чтобы вообще прога реагировала на нажатие клавиш.
Post #: 3
RE: Работа с клавиатурой С++ - 2008-07-29 13:20:51.700000   
Pan4eZzz

Сообщений: 164
Оценки: 0
Присоединился: 2008-02-25 23:34:33.110000
узнаешь ANSI коды клавишь и строишь case:

switch (cn) { case 0x27 : что-то; case 0x13 : что-то; ...
Помоему так, не помню…
Post #: 4
RE: Работа с клавиатурой С++ - 2008-07-29 17:11:14.443333   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333

quote:

ORIGINAL: Pan4eZzz

узнаешь ANSI коды клавишь и строишь case:

switch (cn) { case 0x27 : что-то; case 0x13 : что-то; ...
Помоему так, не помню…


Почти так но не совсем- прога не воспринимает нажатие клавиш. Нужно что-то ещё. ( кстати- cn должно быть char ?)
Post #: 5
RE: Работа с клавиатурой С++ - 2008-07-29 17:52:03.520000   
_hel_

Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
getch() возвращает код нажатой клавиши в ASCII-коде.
Это насколько я помню.

То есть:
if( getch() == 0x20 ){ printf( "Space pressed.\n" ); }

Не забудь добавить файлы conio.h и stdio.h.
Post #: 6
RE: Работа с клавиатурой С++ - 2008-07-29 17:55:18.770000   
Pan4eZzz

Сообщений: 164
Оценки: 0
Присоединился: 2008-02-25 23:34:33.110000

quote:

ORIGINAL: Pavel_b86

Почти так но не совсем- прога не воспринимает нажатие клавиш. Нужно что-то ещё. ( кстати- cn должно быть char ?)

да char
Post #: 7
RE: Работа с клавиатурой С++ - 2008-07-29 18:09:01.926666   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
quote:

getch() возвращает код нажатой клавиши в ASCII-коде. Это насколько я помню. То есть: if( getch() == 0x20 ){ printf( "Space pressed.\n" ); } Не забудь добавить файлы conio.h и stdio.h.


В Linux проблема с conio.h -его там нет, а файл conio.h для Linux скачанный c sourceforge не заработал.
без conio.h выдаёт такую ошибку: ….:64:16: error: macro "getch" passed 1 arguments, but takes just 0

(Вообще- для Visual C или C++ Builder решение найти очень просто, а тут- проблема на пустом месте)
Post #: 8
RE: Работа с клавиатурой С++ - 2008-07-29 18:16:59.410000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
getch возвращает int. И вполне понятно, почему.
Post #: 9
RE: Работа с клавиатурой С++ - 2008-07-29 19:29:08.880000   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
В линухе нет conio.h и связанных с ним функий gotoxy() getch() и т.п.
а getchar() и cin.get() требуют нажатия ENTER
Post #: 10
RE: Работа с клавиатурой С++ - 2008-07-29 20:25:55.676666   
_hel_

Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
простите, не заметил сразу, что речь шла о линуксе.
Post #: 11
RE: Работа с клавиатурой С++ - 2008-07-29 20:59:40.833333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
ncurses
Post #: 12
RE: Работа с клавиатурой С++ - 2008-07-29 21:53:41.036666   
Pavel_b86

Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
Заработало! как оказалось, функция getch() есть в ncurses

Спасибо огромное!
Post #: 13
RE: Работа с клавиатурой С++ - 2008-07-30 12:32:11.036666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ставим +1 | +2 ;)
Post #: 14
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Работа с клавиатурой С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.