Linux 의 getch(),화면 정리 문제 및 printf 가 즉시 표시 되 지 않 는 문제
4610 단어 c 언어
getch()는 리 눅 스에 서 사용 할 수 없습니다.처음에 사용 한 교체 방식 은 initscr()입 니 다.//getch()사용 전 endwin()초기 화;/getch()사용 후 로그아웃 하지만 문제 가 발견 되면 사용 합 니 다.
#include
int getch(void) {
struct termios tm, tm_old;
int fd = STDIN_FILENO, c;
if (tcgetattr(fd, &tm) < 0)
return -1;
tm_old = tm;
cfmakeraw(&tm);
if (tcsetattr(fd, TCSANOW, &tm) < 0)
return -1;
c = fgetc(stdin);
if (tcsetattr(fd, TCSANOW, &tm_old) < 0)
return -1;
if (c == 3)
exit(1);
// Ctrl+C
return c;
}
질문
system("clear")에 문제 가 있 습 니 다.환경 변 수 는 설정 되 어 있 지 않 지만 clear 는 환경 변수 이기 때문에 puts("\033[2J")를 사용 합 니 다.ANSI/VT 100 터미널 제어 탈출 시퀀스 ANSI 제어 코드
printf 가 바로 표시 되 지 않 는 문제:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.