커서를 위, 아래, 왼쪽 및 오른쪽으로 이동할 수있는 작은 프로그램을 만들었습니다.stdin에 기록한 다음 스트림을 1 위치 뒤로 이동
이제 마지막으로 추가 할 항목은 커서가 화면 가장자리로 이동하면 커서가 다음 또는 이전으로 건너 뛰는 기능입니다.
내가 이미 'key_up'과 'key_down'입력 핸들 부분에서 위아래로 이동할 수 있는지 확인하기 위해 모든 종류의 체크를 구현했기 때문에. 물론 key_left와 key_right 시나리오에서 재사용하고 재사용 할 수 있습니다.
그러나 key_up 또는 key_down이 눌린 것처럼 stdin 및 'fake'사용자 입력에 쓸 수 있으면 커서의 x 위치 만 변경하면 길어집니다.
그래서이
다음 getch에putc(KEY_UP,stdin);fseek(stdin,-1, SEEK_CUR);
그래서 같은 것을() 그것은 내가 putc와 표준 입력에 넣어 문자를 검색하여 원하는!
전체 프로그램 인터페이스에 ncurses를 사용합니다!
on Filipe suggestions ungetc()를 사용하여 작업을 시도했지만 원하는 동작이 없습니다.
여기 이론적으로는 첫 번째 문자 후에 무한 페이지의 인쇄해야합니다 작은 테스트 프로그램이지만하지 않습니다
#include <stdio.h>
#include <stdlib.h>
#include <ncurses.h>
int main() {
int input,i=0;
initscr();
start_color();
keypad(stdscr, TRUE);
raw();
nonl();
noecho();
do {
input=getch();
if (i==24) {i=0;erase();}
mvprintw(i,0,"%c --- %i",input,input);
refresh();
if (ungetc((unsigned char)'p', stdin)==EOF) {
printw(" ERROR UNGETC");
}
else {printw(" SUCCES UNGETC");}
++i;
} while (input!='q');
endwin();
exit(2);
}
정확히 내가 찾던 내용입니다. 그러나 그것은 작동하지 않는 것 같습니다. 내 원래 게시물에 작은 예제를 추가했습니다! – RG337
'ungetc()'에'unsigned char'로 전달 했습니까? –
예, 사용해 보았습니다. 예가 지금 게시됩니다. thx : – RG337