2017-01-02 5 views
-1

Я использую визуальный C++ для окон, и я хочу разбить код (например, дождитесь нажатия клавиши (и я уже проработал)), но определите, какая клавиша нажата.
Немного как С # .ReadKey()Что такое C++-версия .ReadKey() в C#?

+0

Должно ли вы возглавить в правильном направлении: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx – user4581301

+0

На перечитании это, вероятно, лучше для вас: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx – user4581301

+0

Консольное приложение? Какого рода цикл цикла или цикла событий у вас есть? Вы должны показать некоторый минимальный пример кода, возможно, используя 'cin' в том месте, где вы хотите использовать эквивалент ReadKey(). – hyde

ответ

0

Если ключ не специальный ключ (не 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.

+0

, но я хочу сделать это без их необходимости нажимать после этого, например, если они нажмут, а затем сделают что-то, в противном случае, если они нажмете b, тогда скажите, что сделали хорошо, иначе скажите им, что они не нажимали a или b или что-то – NathanProgrammer

+0

@ Kid8: Тогда сделайте первый (используя 'char c'), это будет ждать, пока пользователь нажмет клавишу, а' c' укажет, какой из них был нажат. – jpo38

+1

Это ужасное приближение функциональности. Для этого вам нужно выйти из стандартной библиотеки C++, так как у него нет правильной клавиатуры api. –