In: uma string sem quebras de linha *
Permite ao usuário editar e enviar a linha
Out: a string modificada (opcionalmente com uma quebra de linha à direita)
O editor de linha deve, no mínimo, permitir ao usuário:
mover um cursor visível para a esquerda e direita
insira e / ou substitua caracteres na posição do cursor
remover caracteres na posição do cursor
envie a nova string, ou seja, interrompa a edição para que a string modificada seja retornada / impressa / exibida / salva ... (sem nenhum outro texto)
Apreciado, mas não obrigatório:
explicação do seu código.
link para um site de testes on-line que pode demonstrar seu programa / função
uma imagem animada demonstrando uso (o TIO, por exemplo, não permite interatividade)
Nota:
ligações de teclas são apenas sugestões
GUI ou estilo visual não é necessário
Exemplos
A seguir, o cursor é ilustrado com _
.
In: Just some text
permite que o usuário edite: O
Just some text_
usuário pressiona ←(tecla de seta esquerda) nove vezes O
Just ̲some text
usuário pressiona Delquatro vezes O
Just ̲ text
usuário pressiona O usuário pressiona Out:any
Just any_text
Enter
Just any text
In: Remove me
permite que o usuário edite: O
Remove me_
usuário pressiona Backspacenove vezes O
_
usuário pressiona Out: (string vazia)Enter
* Para evitar soluções triviais de editor, isso deve ser fornecido por um método de entrada diferente dos comandos de edição ou deve ser separado deles por uma nova linha ou similar.