작성
·
238
1
while(getchar() != '\n') continue;
가 입력 버퍼에 남아있는 개행문자들을 모두 읽어들이며 입력 버퍼를 클리어해주는 것이라고 알고 있는데 왜 그런지 원리를잘 모르겠어요
getchar()에 들어가는 값이 줄바꿈 값이 아니면 다시 반복문으로 돌아가고, 줄바꿈이면 계속 한다는 뜻인 저while(getchar() != '\n') continue;
라는 코드가 어떻게 그런 기능을 하는 건가요?
답변 1
1
안녕하세요, 질문&답변 도우미 Soobak 입니다.
입력 버퍼는 프로그램이 요청할 때까지 데이터를 보관하는 임시 저장소라고 생각하시면 이해에 도움이 되실 것 같습니다.getchar()
함수는 이 버퍼에서 '하나의 문자' 를 읽어들이며, 버퍼 내부에서 데이터를 가리키는 위치를 하나의 문자 뒤로 이동시킵니다.
즉, while (getchar() != '\n')
반복문은 getchar()
함수가 개행 문자를 읽어들일 때 까지 continue;
를 통해 반복하며, 다음 입력에서 읽어야 할 문자 이전까지 인덱스를 이동시켜주는 원리입니다.