Если я правильно понимаю, не существует независимого от системы способа получения необходимой информации.То, что вы ищете, я думаю, называется кодом сканирования, и у большинства систем есть способ получить его «под Unix, это будет что-то в библиотеке X, если вы работаете в окне, и под Windows,скорее всего, это будет и в библиотеке Windowing.То, что вы получите, это код сканирования плюс несколько битов, указывающих состояние различных клавиш, таких как shift, control и alt;и система управления окнами будет генерировать событие каждый раз, когда любая клавиша меняет состояние.
Если вы не работаете в окне (или в своем собственном окне), возможно, все еще будет возможно получить какое-то состояние ключаесли вы читаете прямо из терминала, хотя я не слишком знаком с возможностями.(Помните, что исторически входные интерфейсы были предназначены для чтения по последовательной линии, и такого рода информация просто не была доступна в C ++.)