Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
ОБСУЖДЕНИЕ
Кнопки с клавиатуры
6 ответов
7,6 тыс.
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Как кнопки с клавиатуры обрабатывать, такие как F1 там стрелки влево вправо вверх вниз, юзаю функцию getchar(), так там на всех эти кнопки код 27 возвращается, видимо из-за того что они составные типа ^[[A
У меня вместо getch() вот такая штука, которую я сам через интернет собирал по частям, эта штука ожидает нажатия клавиши и возвращает значение. Ну типа вроде тот же getch().
Код:
#include <termios.h>
char my_getch()
{
struct termios ekran;
tcflag_t parametri;
tcgetattr(0, &ekran);
parametri = ekran.c_lflag;
ekran.c_lflag &= ~(ICANON | ECHO);
tcsetattr(0, TCSANOW, &ekran);
int vvod;
do
vvod = fgetc(stdin);
while (EOF == vvod);
// Восстановление значений, которые были изменены в начале.
tcgetattr(0, &ekran);
ekran.c_lflag = parametri;
tcsetattr(0, TCSANOW, &ekran);
return vvod;
}
Так вот там на любую клавишу, будь то F1, серая стрелка какая-нибудь, ESC, возвращает код 27, на Enter возвращает код 10.
Функция getchar() то же самое возвращает, а на клавиши шифт контрол алт даже не реагирует, как будто не было нажатия.
int keyCode = _getch();
keyCode = _getch();
if (keyCode == 0 || keyCode == 0xE0);
{
int sysKeyCode = _getch();
//..........
}
там где закоментена строка из точек пишешь код отображения sysKeyCode, например cout<<sysKeyCode<<endl; и с помощью него определяешь код нужной тебе клавиши (там у тебя ескейп вроде), потом в проге делаешь проверку на эту клавишу, и если она нажата, то выходишь из бесконечного цикла(в который тебе нужно вставить код с условием проверки на клавишу) чтения текста.
Там короче был прикол когда ESC равнялся RightArrow, то есть когда нажималась какая-нибудь из стрелок срабатывало событие как будто нажат ESC, короче я стал считывать в массив три значения и только потом проверять их поочерёдно, так разделил ESC и RightArrow
Это короче когда в линуксе будешь сидеть там нету функции getch(), вот этот термиос управляет терминалом блокирует его и ждёт клавиш, если клавиша нажата разблокирует обратно.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.