Я пытаюсь создать функцию, которая считывает нажатия клавиш в POSIX из входного потока, которые являются символами Юникода, без нажатия клавиши ввода, неканонический режим, и мне удалось заставить это работать, однако я не могу найти способ получить escape-коды из входного потока, такие как клавиши со стрелками, ^[[A ^[[B ^[[C ^[[D] или просто клавиша ESC.
Пока что у меня есть что я нашел и изменил на форуме:
Код: Выделить всё
int _get_key() {
int buf = 0;
fflush(stdout);
if(read(0, &buf, sizeof(buf)) < 0)
perror("read()");
return buf;
}
wchar_t get_key() {
wchar_t buf_src[16] = {0};
int ch = _get_key();
memcpy(buf_src, &ch, sizeof(ch));
wchar_t buf_dest[16] = {0};
mbstowcs(buf_dest, buf_src, 1);
return buf_dest[0];
}
Это отлично работает, получая один символ, но я не могу понять, как проанализировать escape-код
Подробнее здесь:
https://stackoverflow.com/questions/783 ... from-the-u