Обычно stdin буферизуется строкой, что означает, что запущенная программа не информируется о том, что пользователь печатает, пока пользователь не нажмет Enter (это позволяет пользователю использовать команды редактирования строки, такие как backspace, без необходимости выполнения вашей программы). ничего лишнего). Однако возможно переключить терминал в «сырой» режим, так что программа будет информироваться каждый раз, когда пользователь нажимает клавишу. Затем ваша программа может воздействовать на эту клавишу любым удобным для вас способом. В этом случае вам придется самостоятельно выполнять редактирование строк, например backspace.
Один из высокоуровневых способов сделать это - использовать библиотеку curses .