Работа с клавиатурой С++
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Работа с клавиатурой С++ - 2008-07-29 11:28:14.653333
|
|
|
Pavel_b86
Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
|
Есть проблема: нужно чтобы программа ( язык С++ , ОС Linux , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает.
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-29 11:49:03.466666
|
|
|
Wlada
Сообщений: 1233
Оценки: 0
Присоединился: 2007-09-24 12:01:26.970000
|
quote:
ORIGINAL: Pavel_b86 Есть проблема: нужно чтобы программа ( язык С++ , ОС Linux , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает. если знаешь как перепиши прогу что бы она при запуске просила ввести клавишы навиации типа этого: нажмите влавишу влево нажмите клавишу вправа нажмите клавишу вверх нажмите клавишу вниз наж….и т.д.
|
|
|
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 , прога консольная ) реагировала на нажатие клавиш ( например, стрелок). Вроде должно быть просто но нигде не нашёл. Подскажите если кто знает. если знаешь как перепиши прогу что бы она при запуске просила ввести клавишы навиации типа этого: нажмите влавишу влево нажмите клавишу вправа нажмите клавишу вверх нажмите клавишу вниз наж….и т.д. Дело не в этом а в том что я не знаю как сделать чтобы вообще прога реагировала на нажатие клавиш.
|
|
|
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 : что-то;
...
Помоему так, не помню…
|
|
|
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 ?)
|
|
|
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.
|
|
|
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
|
|
|
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 решение найти очень просто, а тут- проблема на пустом месте)
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-29 18:16:59.410000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
getch возвращает int. И вполне понятно, почему.
|
|
|
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
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-29 20:25:55.676666
|
|
|
_hel_
Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
|
простите, не заметил сразу, что речь шла о линуксе.
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-29 20:59:40.833333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
ncurses
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-29 21:53:41.036666
|
|
|
Pavel_b86
Сообщений: 6
Оценки: 0
Присоединился: 2008-07-28 23:03:35.633333
|
Заработало! как оказалось, функция getch() есть в ncurses Спасибо огромное!
|
|
|
RE: Работа с клавиатурой С++ - 2008-07-30 12:32:11.036666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Ставим +1 | +2 ;)
|
|
|
|
|