-
[C언어] getchar()와 엔터 공백 제거 / fflush(stdin)개발/C 2020. 12. 23. 17:21
getchar()는 키보드로부터 입력받은 문자를 단 한 문자만 처리한다.
그래서 이렇게 "asdf"를 연속으로 입력하면,
첫 getchat()가 "a"를, 다음 getchar()가 "s"를 받아버린다.그뿐인가. 엔터도 입력으로 받아버려서,
"a"입력후 엔터를 치면 다음 getchar()가 이 엔터를 받아버린다.엔터를 치기 전까지 입력을 다 받으면서, 처리를 이렇게 하다니.. -_-
이를 해결하려면 두 getchar()사이에 fflush(stdin)를 쓴다.
앞에 들어온 입력들을 flush 해 준다.이제 의도대로(?) getchar()들이 각 입력값에서 맨앞 한문자씩만을 가져오게 되었다ㅋ
'개발 > C' 카테고리의 다른 글
[C언어] 비주얼베이직 C 프로젝트 만들기 (0) 2020.12.23 [C언어] 비주얼베이직 / 파일을 빌드에서 제외 (0) 2020.12.23 [C언어] 자료형 묵시적/명시적 변환 (int float double) (0) 2020.12.23 [C언어] float대신 double을 쓰는 이유 / 유효자리수 비교 (0) 2020.12.23 [C언어] 대소문자 변환 / 대문자를 소문자로 / 소문자를 대문자로 (0) 2020.12.23