Я обдумываю свои общие навыки программирования, и я столкнулся с препятствием. Я пишу программу, которая имитирует колонию bunnys. Как только эта программа запускается, она автономна, однако в любой момент пользователь должен нажать клавишу «k», чтобы отбросить население наполовину. Я не могу придумать способ сделать это, не приостанавливая программу, чтобы ждать ввода пользователя. Я также не могу придумать способ сделать это так, чтобы программа немедленно ответила (программа работает в полуреальном режиме с помощью команды sleep). Есть ли способ сделать это без многократного и многолетнего опыта?C++, монитор для ввода с клавиатуры
ответ
C++ ничего не знает о клавиатурах, поэтому любой ответ на это зависит от вашей операционной системы и ее библиотек.
Посмотрите @GetAsyncKeyState вызов Windows API. Вы должны быть в состоянии найти подходящее место, чтобы обучить это в свой код, чтобы обнаружить нажатие клавиши.
Regardint tpdis comment - абсолютно правильно - я предполагаю Windows. –
знать что-нибудь для * nix систем? – Laharah
Я не уверен, если это стандартный C++, но вы можете использовать функцию C, которая проверяет, имеется ли ключ:
#include <conio.h>
int wmain()
{
if(_kbhit())
{
char ch = _getch();
}
}
EDIT: как уже упоминалось Зан Lynx, это не стандарт C++, или даже стандартный C, поэтому нет заголовка. Он отлично работает в компиляторах Visual C++ или DOS C++.
Это не стандарт, это только Windows. –
Я думаю, что это article подходит к тому, что вы хотите делать без участия ncurses.
Библиотека, подобная Qt, может помочь вам совсем немного. Вы должны создать объект «приложение», полученный от QCoreApplication
. При переопределении QCoreAPplication::event(Event*)
вы должны обработать событие, если оно QKeyEvent
, содержащее Qt::Key_K
. Это переносимо для Windows, Mac и Linux.
Попробуйте ncurses Это довольно стандартный стандарт в UNIX-окружении. Он имеет специальные функции, чтобы ждать ввода пользователя с таймаутом, если никто не нажимает какую-либо клавишу.
- 1. C# Отправка ввода клавиатуры
- 2. C++ с несколькими линиями ввода с клавиатуры
- 3. Проверка ввода с клавиатуры
- 4. Изменить тип ввода клавиатуры C#
- 5. ввода с клавиатуры HTML
- 6. Несколько ввода с клавиатуры C# WPF
- 7. Монитор Факс с C#
- 8. чтение ввода с клавиатуры
- 9. ввода с клавиатуры помощи
- 10. Самый короткий путь для ввода текста ввода с клавиатуры
- 11. Вопросы безопасности для ввода клавиатуры
- 12. Сканирование для ввода с клавиатуры без паузы
- 13. C++ cpp socket и прерывание ввода клавиатуры
- 14. Чтение клавиатуры ввода
- 15. Перехват ввода клавиатуры
- 16. Обработка ввода с клавиатуры клин
- 17. C# - Получение ввода клавиатуры после события
- 18. Блокировка ввода с клавиатуры HID
- 19. Имитация ввода мыши и клавиатуры в C++
- 20. Задержка ввода с клавиатуры help
- 21. Как использовать BufferedReader вне цикла для ввода ввода с клавиатуры?
- 22. Совет по буферизации ввода клавиатуры (C++)
- 23. Монитор исключений C# с фильтрацией
- 24. Монитор Глобальный ввод клавиатуры на Mac с помощью python
- 25. ввода с клавиатуры в класс
- 26. Сценарий ввода клавиатуры с Ruby
- 27. Проблема ввода с клавиатуры Pygame
- 28. монитор с перегрузкой оператора C++
- 29. Получение ввода с клавиатуры в c с помощью conio.h
- 30. Скорость ввода клавиатуры JCombobox
'Я пишу программу, которая имитирует колонию bunnys. Как только эта программа запускается, она является автономной. --- Что вы должны делать с первым кроликом, чтобы запустить программу? –
конструктор для колонии семена его с 5 кроликами случайным образом мужчина или женщина – Laharah
Возможный дубликат: http://stackoverflow.com/questions/448944 - хотя абстракции C++ нет. Также проверьте http://rabbit.eng.miami.edu/info/functions/asynchkbd.html – jweyrich