getch와 ungetch 질문드려요~
가랑비
질문 제목 :getch와 ungetch 질문드려요~화이트북 내용을 이해 할 수 없습니다.질문 내용 :
getch와 ungetch가 무엇인지 모르겠습니다. 입력 프로그램은 지나치게 입력되기 전까지는 충분히 읽어 들였는지 판단할 수 없다. 그 예로 숫자를 구성하는 문자들의 집합들을 들 수 있다. 즉 숫자가 아닌 것이 입력되기 전까지는 숫자입력이 끝났는지 안닌지를 알 수 없다. 이 문제를 해결하기 위해서는 일단 한 문자를 읽은 후 숫자가 아니면 그것을 다시 원상태로 되돌려 주어야 한다. 다시 말해서 프로그램이 한 문자를 읽어들일 때마다 그것을 입력에 다시 집어넣어서 프로그램의 나머지 부분들은 그것이 읽혀지지 않았던 것처럼 처리되도록 하면 되는 것이다.getch는 다음 입력문자를 읽어들인다. ungetch는 문자를 다시 입력에 넣어서, 다음에 getch를 호출할 때 그것을 넘겨주도록 한다. 그들의 동작은 아주 간단하다. getch는 버퍼에 어떤 문자가 있으면 읽어들이고, 버퍼가 비게되면 getch를 호출한다. 그리고 버퍼안의 현재문자의 위치를 기록해 두어야 한다(인덱스).버퍼와 인덱스는 getch와 ungetch에 의하여 공유되며, 호출할 때 그들의 값을 유지하여야 하므로, 모두 외부형으로 선언되어야 한다.
이 말이 이해가 안돼네요 -0-,,,,
getch의 버퍼 역할을 하는것이 ungetch 인데,,, ungetch는 키보드가 입력한걸 모두다 받아서,,, getch할 때 다 출력시키는 건가요,,,?
이해가 안돼요,,,