curses라이브러리를 이용한 윈도우상에서의 backspace입력
글쓴이: jx2h / 작성시간: 목, 2005/01/20 - 5:26오후
entry라는 윈도우가있고 그 윈도우상에서
키보드로부터 케릭터를 하나씩 수집하면서
수집한키가 개행인지 백스페이스인지 여부를 검사하고
개행일때까지 화면에 출력 & string배열에 쌓는 루틴입니다
while(1) { ch = wgetch(entry); if(ch == '\n') break; if(ch != '\b') { string[l] = ch; l++; wmove(entry, 2, i); winsch(entry, (chtype*)string[l-1]); i++; wrefresh(entry); } else { l--; string[l] = 'NULL'; i--; wmove(entry, 2, i); winsch(entry, (chtype*)string[l]); wrefresh(entry); } }
문제는 백스페이스를 누르면 '\b'이 아니라 쓰레기가 들어갑니다
백스페이스를 어떻게 구분하는것이 좋겠습니까?
그리고 else문에서 string[l]이부분을 NULL로 치환하는데
치환이 안돼고 string[l] 뒤에있는 원소들이 한칸씩 밀려버리더군요-_-;
좋은해결책 좀 제시해주시기 바랍니다 :cry:
Forums:
일단 두번째 문제는 해결되었습니다-_-;;[code:1]
일단 두번째 문제는 해결되었습니다-_-;;
그런데 또 entry에 찍을땐 문자가 깨지고 string을 찍어보면 제대로 들어가있고...winsch()에 문제가있는걸일까ㅠㅠ
dead or alive(0 or 1)
댓글 달기