[C] 입력스트림을 비우는 방법이 없을까요?

gurumong의 이미지

C언어에서 입력스트림을 비우는 표준적인 방법이 없는것인가요?
창피하게도 콘솔 프로그램의 마지막에 "아무키나 누르면 종료됩니다" 라는 메세지를 출력하고 아무런 키나 입력하면 종료되도록 하는것을 만들고있는중인데

이전 입력처리에서 입력스트림에 남아있는 데이터를 그대로 읽어와버려서 사용자가 저 메세지가 출력된 이후의 키입력을 잡아내질 못하고 있습니다

어떻게 해야할까요?

winner의 이미지

비교대상으로 EOF 를 쓸지 개행을 쓸지는 상황에 맞춰 하면 되겠죠. 질문 글을 보면 표준입력인 것 같고, 개행까지 읽어야 할 듯 하네요.

yae1021의 이미지

while getchar ^ '\n'

과 같은 형태로 허공에 버리면 됩니다.

cinsk의 이미지

> C언어에서 입력스트림을 비우는 표준적인 방법이 없는것인가요?

네. 없습니다.

원하는 내용을 해결하는 방법은 모두 비표준적인 방법들입니다. curses를 활용하든, select(2)를 활용하든~ 말입니다.