인프런 커뮤니티 질문&답변

강진성님의 프로필 이미지
강진성

작성한 질문수

홍정모의 따라하며 배우는 C언어

8.7 입력 스트림과 숫자

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

작성

·

81

1

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

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

답변 1

1

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

 

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

 

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

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

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

 

반면,

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

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

 

 

강진성님의 프로필 이미지
강진성

작성한 질문수

질문하기