Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/85: Рейтинг темы: голосов - 85, средняя оценка - 4.79
 Аватар для Викдон
67 / 67 / 24
Регистрация: 21.11.2008
Сообщений: 226

Getch для управляющих клавиш

11.03.2009, 00:26. Показов 17223. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую Getch для считывания кода управляющей клавиши(стрелки). Почему при первом вызове считывается код 32? На паскале работал там символ управляющей клавиши первым был #0?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2009, 00:26
Ответы с готовыми решениями:

Аналог getch или русские буквы в getch
Здравствуйте, уважаемые господа. Существуют ли какие-нибудь аналоги getch () и _getch, которые не требуют ввода какого-либо другого...

Литература для создания элементарного языка управляющих сигналов и интерпретатора для него
Доброго времени суток! Подскажите, с чего начать при создании? Нужно придумать элементарный язык для задания управляющих сигналов и...

Таймер для getch()
#include <iostream> #include <conio.h> using namespace std; void main() { char one='w',two; while(true){ ...

5
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
11.03.2009, 11:03
если честно, то них*ра не понял...

32 - это вроде бы пробел.... какая стралка???
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.03.2009, 11:23
65 - up
66 - down
67 - right
68 - left

первый символ 27

вверх == 27,65 == 0x1B,0x41
0
 Аватар для Викдон
67 / 67 / 24
Регистрация: 21.11.2008
Сообщений: 226
11.03.2009, 11:34  [ТС]
Символьные клавиши возвращают при нажатии одно значение (1 байт), которое принято называть простым кодом.
Управляющие клавиши при нажатии возвращают два значения (2 байта), причем первое из них равно 0 (это и есть признак управляющей клавиши), а второе - фиксированная, соответствующая нажатой клавише величина. Коды возврата специальных клавиш принято называть расширенными.

вот листинг:

C++
1
2
3
char s;
 s=getch(); //при нажатии клавишы "стрелка" s=32 'а'
 s=getch(); //здесь уже s= 77 (вверх) или 80(вниз)....
Это в консольном приложении Visual Studio
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.03.2009, 13:24
C
1
2
3
4
5
6
7
8
9
10
11
12
 
#include <stdio.h>
 
/* выводит коды клавиш */
main()
{
    int c;
    
    while ((c = getchar()) != EOF)
        printf("%#x\n", c);
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[guest@station tmp]$ ./test
^[[A
0x1b
0x5b
0x41
0xa
^[[B
0x1b
0x5b
0x42
0xa
^[[C
0x1b
0x5b
0x43
0xa
^[[D
0x1b
0x5b
0x44
0xa
[guest@station tmp]$
это верх, низ, право, лево

Добавлено через 3 минуты 0 секунд
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[guest@station tmp]$ ./test
^[OP
0x1b
0x4f
0x50
0xa
^[O2P
0x1b
0x4f
0x32
0x50
0xa
[guest@station tmp]$
F1, Shift+F1
0
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 98
Записей в блоге: 1
09.02.2013, 02:36
Цитата Сообщение от Викдон Посмотреть сообщение
Код C++
1
2
3
char s;
*s=getch(); //при нажатии клавишы "стрелка" s=32 'а'
*s=getch(); //здесь уже s= 77 (вверх) или 80(вниз)....
понимаеш при нажатии клавиши отправляется число 32 а возвращяет 77 понимаеш первое код а потом символ
типа вот адрес 32 а там 77
короче... если тебе нужно использовать клавиатуру сморти на второй код
нажатой клавиши...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2013, 02:36
Помогаю со студенческими работами здесь

Нужен аналог функции getch() для Unix
Сталкнулся с такой проблемой не могу найти аналог функции getch для линукс мне просто нужно чтобы я мог вводить любой символ без нажатия...

Программа для определения управляющих клавиш расширенной клавиатуры
Подскажите пожалуйста, нашел подобную программу, но почему-то она реагирует только на numlock и esc. В чем может быть причина? Вот код: ...

Игнорирование управляющих клавиш
Такой вопрос: Можно ли в программе сделать так, что когда нажимаешь на какую-то управляющую клавишу (например Enter или Esc) ничего не...

Сатус управляющих клавиш.
Как проверить нажатие упpавляющих клавиш? Ctrl, Alt, Shift (желательно определить левое или правое) и статус NumLock, ScrollLock, CapsLook.

Проверка нажатия управляющих клавиш
Здравствуйте. Помогите, пожалуйста, начинающему. Следующий код должен выводить сообщение в случае нажатия клавиши, а именно: Правого шифта....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru