Я пишу программу C, и я не могу понять, как вставить «Нажмите любую клавишу, чтобы продолжить ...» и заставить ее продолжить после любой клавиши, а не просто ввести - PullRequest
0 голосов
/ 18 февраля 2020

Я пишу управляемую меню программу с оператором switch и пока l oop. Мой проф хочет, чтобы мы включили «Нажмите любую клавишу, чтобы продолжить ...» и говорит, что для этого нужно использовать getchar (). Он говорит, что мы потеряем очки, если от нас потребуется нажать Enter, что и происходит со мной, когда я использую getchar ().

Я видел много постов об использовании getch () с, но это не так. работает, потому что я использую C программу, скомпилированную и запущенную с помощью cygwin.

Заранее спасибо

РЕДАКТИРОВАТЬ Обновление, так как я не видел никакого ответа для этой спецификации c вопрос с использованием Unix / Linux ... По электронной почте мой проф, и он ответил мне с этим ...

"Проблемы Unix / Linux. Клавиатура ввода / вывода буферизуется, т.е. Ваша программа может не получить символ сразу после нажатия пользователем клавиши. Обычно операционная система (ОС) будет отправлять символы, нажимаемые после нажатия клавиши ВВОД. Если вы хотите, чтобы ваша программа получала символ сразу после нажатия пользователем, Запустите следующую команду в вашей оболочке (командное окно или Терминал). Вам нужно запустить ее только один раз после первого открытия вашей оболочки. stty -icanon min 1

Я выполнил эту команду в оболочке до компиляции, и она все еще не работала.

Затем я использовал getchar (); два раза подряд, так как scanf использовался ранее и не использует используемый ввод и передает его первому getchar ();

Теперь это работает, и я могу нажать ЛЮБУЮ клавишу, чтобы продолжить ...

...