개발/C
[C언어] getchar()와 엔터 공백 제거 / fflush(stdin)
글쓴사람
2020. 12. 23. 17:21
getchar()는 키보드로부터 입력받은 문자를 단 한 문자만 처리한다.
그래서 이렇게 "asdf"를 연속으로 입력하면,
첫 getchat()가 "a"를, 다음 getchar()가 "s"를 받아버린다.
그뿐인가. 엔터도 입력으로 받아버려서,
"a"입력후 엔터를 치면 다음 getchar()가 이 엔터를 받아버린다.
엔터를 치기 전까지 입력을 다 받으면서, 처리를 이렇게 하다니.. -_-
이를 해결하려면 두 getchar()사이에 fflush(stdin)를 쓴다.
앞에 들어온 입력들을 flush 해 준다.
이제 의도대로(?) getchar()들이 각 입력값에서 맨앞 한문자씩만을 가져오게 되었다ㅋ