Считывание нажатия клавиш вне зависимости от раскладки - C (СИ)
Формулировка задачи:
typedef{int x; int y;} crd;
int control(crd *playerCrd)
{
switch(getch())
{
case 87: /*должна быть W*/
playerCrd->x++;
return 2;
case 27: /*ESC*/
return 1;
default:
return 0;
}
}Решение задачи: «Считывание нажатия клавиш вне зависимости от раскладки»
textual
Листинг программы
switch(toupper(getc(stdin)))
{
case 0x57: /*должна быть W*/
printf("gav-gav\n");
break;
case 27: /*ESC*/
printf("meo-meo\n");
break;
default:
break;
}
Объяснение кода листинга программы
В этом коде используется операция считывания символа из стандартного ввода (stdin) с помощью функции getc. Затем, с помощью функции toupper, преобразуется в верхний регистр. Далее, с помощью оператора switch, проверяется, какой символ был считан. Если это 'W', то выводится gav-gav, если это 'ESC', то выводится meo-meo. Если считанный символ не равен 'W' или 'ESC', то ничего не происходит.