Я использую визуальный C++ для окон, и я хочу разбить код (например, дождитесь нажатия клавиши (и я уже проработал)), но определите, какая клавиша нажата.
Немного как С # .ReadKey()Что такое C++-версия .ReadKey() в C#?
ответ
Если ключ не специальный ключ (не Ctrl, Alt ...), вам просто нужно сделать, это:
char c;
std::cin >> c;
Или:
std::string s;
std::getline(std::cin,s);
Этим двум пользователям потребуется нажать «Ввод», прежде чем вы получите управление обратно.
Если вы не хотите, чтобы пользователь нажимал Enter, отметьте this answer этого сообщения: Capture characters from standard input without waiting for enter to be pressed.
, но я хочу сделать это без их необходимости нажимать после этого, например, если они нажмут, а затем сделают что-то, в противном случае, если они нажмете b, тогда скажите, что сделали хорошо, иначе скажите им, что они не нажимали a или b или что-то – NathanProgrammer
@ Kid8: Тогда сделайте первый (используя 'char c'), это будет ждать, пока пользователь нажмет клавишу, а' c' укажет, какой из них был нажат. – jpo38
Это ужасное приближение функциональности. Для этого вам нужно выйти из стандартной библиотеки C++, так как у него нет правильной клавиатуры api. –
Должно ли вы возглавить в правильном направлении: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx – user4581301
На перечитании это, вероятно, лучше для вас: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx – user4581301
Консольное приложение? Какого рода цикл цикла или цикла событий у вас есть? Вы должны показать некоторый минимальный пример кода, возможно, используя 'cin' в том месте, где вы хотите использовать эквивалент ReadKey(). – hyde