Leitura adicional

Leitura adicional

Quando pressiono uma seta no terminal o cursor se move corretamente, mas quando faço uma aplicação simples em C, C++ ou Python ele escreve ^[[A, ^[[B... Eu escrevi um programa simples em Python então você pode ver o código e os resultados.

insira a descrição da imagem aqui

Responder1

Este é o nível de decodificação de entrada do terminal que você obtém da disciplina de linha no modo de entrada canônica. Não é muito.

Cada aplicativo que deseja apresentar uma entrada de linha de comando editável que respeite o teclado do cursor, o teclado de edição e as teclas de função deve mudar o terminal para o modo de entrada bruta e decodificar o fluxo de entrada ECMA-48, contabilizando os tipos de terminal (e várias máquinas de estado bodges para RXVT, Linux KVTs, SCO Console e Interix). Seu programa tem que fazer isso.

Existem várias bibliotecas para fazer isso, desde GNU ReadLine até libtermkey/libtickitelinha de edição(também conhecido como libedit) para ZLE no shell Z e na biblioteca de edição do shell Korn.

Leitura adicional

informação relacionada