Я пишу C ++ CLI-приложение, как я могу определить, нажата ли какая-либо клавиша пользователем. Я видел это в C #, но как это можно реализовать в C ++
while(1)
{
while(/* code to check if any key is pressed*/)
{ //rest of the code
// sleep function
}
}
Подсказка: как в CLI-играх двигаться или предпринимать определенные действия при нажатии клавиши, или ничего не делать, если не вводить данные.
На окнах, по крайней мере, вы могли бы использовать GetKeyState
мы можем использовать функцию _kbhit () в c ++. _kbhit равно 1, если нажата какая-либо клавиша. Вы должны очистить буфер _kbhit, в противном случае он останется 1. Метод очистки — символ = getch (); Это сохранит последний введенный ключ в символе, который вы можете сравнить и решить, какое действие выполнить над каким ключом.
Хотя цикл может потреблять процессор, я не советую использовать метод ожидания, вместо этого вы должны подумать о перехвате событий.
Здесь вы можете прочитать о перехвате событий нажатия клавиш в Winapi. C ++ Win32 события клавиатуры
Если вы по-прежнему заинтересованы в использовании цикла while, вам также следует освободить некоторые ресурсы, спя после проверки, что условие ложно (например, nanosleep)