Получить ввод с одной клавиши на C++ в MacOS

Я пытаюсь создать версию pong для терминала MacOS. Тем не менее, я не могу получить ввод с одной клавиши (моя версия определения того, какая клавиша нажата в определенное время). Я пробовал все (даже с использованием функции getch(), используемой в устаревшей библиотеке conio.h. Я хочу использовать ее в такой функции:

void detect_w()
{
    int ascii_key_pressed_code = <some function to get pressed keys>;
    if (ascii_key_pressed_code == 0xa9)
    {
        // the ascii code for "A" triggered.
        // do something...
    }
    // ....
}

Для тех, кто думает «просто используйте cin», я хочу небуферизованный ввод.


person Community    schedule 07.05.2020    source источник
comment
Какая у вас проблема с getch?   -  person Alan Birtles    schedule 07.05.2020
comment
как я сказал в вопросе, getch() обесценивается. Компилятор gcc жалуется на conio.h - библиотеку DOS, которой не существует.   -  person    schedule 07.05.2020
comment
conio.h предназначен только для DOS/Windows. Вы ищете проклятия или ncurses.   -  person Thomas Sablik    schedule 07.05.2020
comment
getch не устарел, вам просто нужно включить правильные заголовки для вашей платформы: developer.apple.com/library/archive/documentation/System/   -  person Alan Birtles    schedule 07.05.2020
comment
Это неправильно. В Linux вы не можете включить conio.h, что делает невозможным его использование.   -  person    schedule 07.05.2020
comment
Кроме того, мой Mac с 2006 года, поэтому я как бы застрял на OSX Lion. Это означает, что я не могу использовать brew, yum или любые другие менеджеры пакетов для установки дополнительных заголовков G++ или GCC.   -  person    schedule 07.05.2020
comment
введите man getch в свой терминал   -  person Alan Birtles    schedule 07.05.2020
comment
getch() - это не то, что я ищу - я не хочу, чтобы весь терминал останавливался. Я просто хочу иметь возможность видеть, какие клавиши нажимаются одновременно.   -  person    schedule 07.05.2020
comment
stackoverflow.com/questions/29537616/   -  person Alan Birtles    schedule 07.05.2020