C로 프로그래밍하는 것을 배우고 코드가 실행되는 동안 을 누르지 않고 문자를 터미널에 입력 할 수 있기를 원합니다. 내 프로그램은 작동하지만, initscr()
으로 전화하면 filter()
을 호출 한 후에도 화면이 지워집니다. filter
에 대한 문서는 클리어링을 비활성화해야한다고 제안하지만 이는 저에게 해당하지 않습니다.화면을 지우지 않고 curses에서 getch를 사용하려면 어떻게해야합니까?
#include <stdio.h>
#include <curses.h>
#include <term.h>
int main(void) {
int ch;
filter();
initscr();
cbreak();
noecho();
keypad(stdscr, TRUE);
while((ch = getch()) != EOF);
endwin();
return 0;
}
왜 위의 코드는 여전히 화면을 깨끗하게합니까?이를 해결하기 위해 수행 할 수있는 작업은 무엇입니까?
도움이된다면 데비안 레니 (stable)와 gnome-terminal을 사용하고 있습니다.
: 파일 역사 : – Brandin
PDC_PRESERVE_SCREEN 이 환경 변수가 만약을 이 설정되면 PDCurses는 시작할 때 화면의 검은 색 기본 설정 인 을 지우지 않습니다. 이를 통해 창을 기존 화면 배경 위에 덮을 수 있습니다. PDC_RESTORE_SCREEN 이 환경 변수가 설정된 경우 PDCurses는 PDCurses가 시작될 때 화면의 내용을 복사합니다. initscr(), 그리고 endwin()이 호출되면 화면이 복원됩니다. – Brandin