getch()를 사용하여 한 번에 하나씩 문자를 읽고 버퍼로 복사하는 간단한 ncurses 프로그램을 설정했습니다. 내가 겪고있는 문제는 백 스페이스 키를 누르는 것입니다. 여기에 관련 코드 :ncurses와 함께 백 스페이스 사용
this is a test^?^?^?
:
while((buffer[i] = c = getch()) != EOF) {
++i;
if (c == '\n') {
break;
}
else if (c == KEY_BACKSPACE || c == KEY_DC || c == 127) {
i--;
delch();
buffer[i] = 0;
}
refresh();
}
는하지만이 코드를 실행하려고 할 때,이 라인에서 문자를 삭제하려고 후 화면에 표시되는 내용은 "이것은 테스트입니다" 및 buffer
의 내용은 다음과 같습니다 GDB와
this is a test
내가 아는 그 삭제/백 스페이스를 확인하는 문이 호출되는 경우, 그래서 그 밖의 무엇을 나는 차를 삭제할 수 있도록 일을해야 라이터?
''이것은''buffer'의 내용입니까? 아니면 화면에 나타나는 것입니까? 어느 쪽이든, 다른 무엇입니까? –
'이것은 시험입니다 ^? ^? ^? '는 터미널에 나타나는 것입니다, 버퍼에는'이 시험입니다'가 있습니다. – Jumhyn