• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

while(getchar() != '\n') continue;의 원리

24.02.01 16:46 작성 조회수 98

1

while(getchar() != '\n') continue;가 입력 버퍼에 남아있는 개행문자들을 모두 읽어들이며 입력 버퍼를 클리어해주는 것이라고 알고 있는데 왜 그런지 원리를잘 모르겠어요

getchar()에 들어가는 값이 줄바꿈 값이 아니면 다시 반복문으로 돌아가고, 줄바꿈이면 계속 한다는 뜻인 저while(getchar() != '\n') continue; 라는 코드가 어떻게 그런 기능을 하는 건가요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.02.02

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

입력 버퍼는 프로그램이 요청할 때까지 데이터를 보관하는 임시 저장소라고 생각하시면 이해에 도움이 되실 것 같습니다.
getchar() 함수는 이 버퍼에서 '하나의 문자' 를 읽어들이며, 버퍼 내부에서 데이터를 가리키는 위치를 하나의 문자 뒤로 이동시킵니다.
즉, while (getchar() != '\n') 반복문은 getchar() 함수가 개행 문자를 읽어들일 때 까지 continue; 를 통해 반복하며, 다음 입력에서 읽어야 할 문자 이전까지 인덱스를 이동시켜주는 원리입니다.