


Как проверить нажатие клавиши C++?
То есть у меня есть цикл, и он должен выполнятся до тех пор пока нажимается определенная клавиша.
Дополненчерез cin проверять не охота, т. к надо ввести число, потом еще нажимать enter
А мне надо чтобы я ввел клавишу и цикл сразу выполнился, причем эта клавишу переменная, то есть на экране при нажатии не должен быть виден
причем эта клавишу НЕ переменная*
Говорю еще раз для непонятливых. Вариант, через cin и char не подходит, т. к надо это самое char ВВЕСТИ в консоль и это самая char будет ОТОБРАЖАТЬСЯ в консоли. А мне надо, чтобы клавиша как кнопка перезапуска работала, в консоли не должно быть ничего лишнего, нажал клавишу цикл выполнился.
В Windows можно сделать так:
WCHAR ReadChar(HANDLE hInput) {
INPUT_RECORD rec; DWORD t;
while (ReadConsoleInput(hInput, &rec, 1, &t)) {
if (rec.EventType != KEY_EVENT) continue;
if (rec.Event.KeyEvent.bKeyDown) return rec.Event.KeyEvent.uChar.UnicodeChar;
}
return 0;
}
Функция ожидает нажатия клавиши и возвращает введённый символ (без его отображения в консоли) или 0 в случае ошибки. Можно также возвращать простой однобайтовый char используя rec.Event.KeyEvent.uChar.AsciiChar или виртуальный код клавиши используя rec.Event.KeyEvent.wVirtualKeyCode.
Если же нужно просто проверить состояние конкретной клавиши (т. е. без ожидания её нажатия), то используй функцию GetAsyncKeyState.
Ваша задача не имеет однозначного переносимого решения и не имеет никакого отношения к С++. Посмотрите эту программу, используемую там технику можно попробовать подогнать под ваш случай: https://pastebin.com/GzyuJBi4
через ascii коды наверное