Я написал код C ++ с readline
библиотека:
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <readline/readline.h>
#include <readline/history.h>
int main(int argc, char** argv) {
char* buf;
while ((buf = readline(">> ")) != nullptr) {
if (strlen(buf) > 0) add_history(buf);
printf("[%s]\n", buf);
free(buf);
}
return 0;
}
Код работает нормально, но проблема в backspace
ключ. Когда я делаю ошибку с вводом и пытаюсь удалить символ с помощью клавиши, вместо удаления последнего символа, он дает пробел. первоначально
>> Hellow
После удара backspace
, это дает мне место вместо удаления w
:
>> Hellow(there_is_a_space_here!)
Я работаю в Bash, используя tmux, и это странное поведение появляется только при запуске этого кода с readline
, Может ли кто-нибудь сказать мне, как исправить это странное поведение backspace
?
ОБНОВИТЬ
Такое же поведение также появляется при запуске кода на tcsh
,
Задача ещё не решена.
Других решений пока нет …