예를 들어, "Hinge"문자열이 있다고 가정하십시오. 커서를 처음으로 옮기고 del 키를 눌러 "H"를 제거한 다음 "B"를 삽입하여 커서 앞에 모든 것을 넣을 수 있기를 원합니다. 기본 동작 인 "i"를 덮어 쓰지 않고 "Binge"라는 단어를 생성합니다. 표준 addch() 함수를 사용하여이 작업을 수행 할 수 있습니까?커서를 curses/C에서 텍스트 편집기/터미널처럼 동작하게 만드는 방법은 무엇입니까?
또한 화면에 제대로 인쇄 할 수 있다고해도 버퍼에 해당하는 문제가 너무 복잡해 보입니다. 이것은 일반적인 작업처럼 보이지만 해커가 아닌 방법으로 생각할 수는 없습니다.
다음은 현재 기본 입력을 처리하는 방법의 예입니다.
if (isprint(key)) {
if (ctx->pos != sizeof(ctx->line)-1) {
mvwaddch(self->window, y, x, key);
ctx->line[ctx->pos++] = key;
ctx->line[ctx->pos] = '\0';
}
}
흠 컴파일 이후 이것이 가장 좋은 방법이지만, 당신의 연결리스트로 코딩 클래스의 생각이 확실하지 C,의 문자와 함수를 쓸 수 있습니까? '삽입'버튼과 같은 플래그를 설정하여 다른 문자를 덮어 쓰거나 추가하고 앞으로 모든 것을 밀 수 있습니다. – Danicco
[GNU readline library] (http://www.gnu.org/s/readline) 사용을 고려하십시오. – jxh