Об этом действительно спрашивали раньше, и ответ таков: вы не можете этого сделать.
C ++ не имеет понятия клавиатуры или консоли. Он знает только о непрозрачном входном потоке данных.
Ваша физическая консоль предварительно обрабатывает и буферизирует ваши действия на клавиатуре и отправляет только готовые данные в программу, обычно построчно. Чтобы напрямую общаться с клавиатурой, вам необходима библиотека обработки терминалов для конкретной платформы.
В Linux это обычно делается с библиотеками ncurses
или termcap
/ terminfo
. В Windows вы можете использовать pdcurses
или, возможно, Windows API (хотя я не знаком с этим аспектом).
Фреймворки для графических приложений, такие как SDL, Allegro, Irrlicht или Ogre3D, также поставляются с полной обработкой клавиатуры и мыши.