• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

입력 버퍼를 지우는 코딩 부분 질문

24.07.02 10:43 작성 조회수 31

1

9:09쯤에 반드시 char c; 선언하고 지워야 하나요?

while(getchar() != '\n')continue; 로 작성하면 강의 코드와 다른 동작이 실행되나요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.07.02

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

 

단순히 버퍼를 비우기 위해서는 질문자님께서 말씀해주신 것 처럼,
whlie(getchar() != '\n') continue; 만을 사용하여도 됩니다.

 

하지만, 강의에서의 코드와는 다른 동작이 실행됩니다.

char c;
while ((c = getchar()) != '\n')
    putchar(c);

: 이 코드에서는 개행 문자('\n')를 만나기 전까지 버퍼로부터 문자를 한 글자씩 읽어온 후, putchar() 함수를 통해서 해당 문자를 화면에 출력합니다.

 

반면,

while(getchar() != '\n')
    continue;

: 위 코드에서는 단순히 버퍼로부터 문자를 읽어들이기만 합니다.

 

 

채널톡 아이콘