Я читаю, и я вижу, что я могу использовать getch(), чтобы получить нажатие клавиши. Я видел, что это считается плохой практикой, однако я видел противоречивые мнения. Я пишу консольное приложение для своего класса и хочу иметь возможность перемещать маркер (*) вокруг экрана на основе нажатых клавиш со стрелками. Является ли getch() правильным способом для этого, или есть лучший способ его захвата. Я хочу, чтобы они просто могли нажимать стрелу, не нужно вводить вход или что-то еще. Мне не нужен код специально, я просто хочу знать, следует ли мне избегать getch(), и если да, то какие функции существуют для этого типа идеи.Захват нажатия клавиши в C++
ответ
getch()
не является стандартной функцией ни на C, ни на C++. Он найден в некоторых устаревших компиляторах, таких как Turbo C, и он также определен в некоторых часто используемых библиотеках, таких как curses, но в любом случае это функция C, а не C++. Для C++ вы, вероятно, должны просто придерживаться стандартного ввода-вывода C++. Если вы не можете сделать это по какой-то причине, перейдите на самую портативную опцию, например. проклинает.
Есть ли стандартный способ C++ для захвата нажатий клавиш, поскольку они набраны, или C++ всегда нужен вход для буферизации? – Bear
@bear: нет такого способа в стандарте C++ – smerlin
Я думаю, что любое решение будет либо предназначено для ОС, либо потребует библиотеки, такой как проклятия или ncurses. –
Вы хотите читать с терминала в неканоническом режиме. Используйте tcsetattr(), чтобы отключить флаг ICANON.
что я искал благодарности! –
Используйте getch(), если он работает. Почему нет?
В Windows вы можете использовать pdcurses: http://pdcurses.sourceforge.net/, что совместимо с ncurses.
- 1. Захват нажатия клавиши «Ввод» в C
- 2. захват нажатия клавиши без блокировки
- 3. Захват нажатия клавиши без фокуса в консоли
- 4. захват события нажатия клавиши с использованием xlib
- 5. Захват нажатия клавиши ESC по Telnet?
- 6. Имитация нажатия клавиши в C#
- 7. Событие нажатия клавиши в C#
- 8. VB6 Захват клавиши Tab
- 9. Изменение скорости нажатия клавиши C++
- 10. C#: Фон, ожидающий нажатия клавиши
- 11. Событие нажатия клавиши консоли C#
- 12. Захват нажатия клавиши в BlackBerry с помощью jQueryMobile
- 13. C# простое обнаружение нажатия клавиши
- 14. Захват нажатия клавиши без размещения входного элемента на странице?
- 15. Захват TAB keydown и запуск другого нажатия клавиши
- 16. Захват анимации css получает скрытие от нажатия клавиши
- 17. Демон в C# для прослушивания нажатия клавиши
- 18. Обнаружение только одного нажатия клавиши в C++
- 19. Как измерить время нажатия клавиши в C#
- 20. Обнаружение двойного нажатия клавиши в Objective-C
- 21. Мониторинг нажатия клавиши/нажатия клавиши с помощью NodeJS
- 22. Управление функцией нажатия клавиши
- 23. Захват «Удалить» нажатие клавиши
- 24. Удаление задержки нажатия клавиши
- 25. Захват горячей клавиши в браузерах
- 26. QTermWidget: имитация нажатия клавиши Python/C++
- 27. C# эквивалент события нажатия клавиши WM_CHAR?
- 28. ios/xcode/object c: Захват последнего нажатия клавиши в текстовом поле
- 29. C++ Дифференцирование нажатия клавиши vs Key Release
- 30. Улавливание нажатия EOF без нажатия клавиши Enter C
Какая операционная система? –