• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

getchar() , 버퍼 질문

23.01.25 12:37 작성 조회수 305

0

while (1)

{

printf("Current count is %d. Continue? (y/n)\n", count);

int c = getchar();

if (c == 'n')

break;

else if (c == 'y')

{

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

continue;

count++;

}

이 코드에서 int c = getchar();에서 입력을 받고 버퍼에 저장된 후

while (getchar() != '\n') continue; 이 코드를 통해 버퍼에 있는 문자가 하나 씩 반환 되면서 버퍼가 비워지고 다시 int c = getchar(); 을 통해 입력을 받는다고 이해했습니다. 우선 이 과정이 맞게 이해한 건지 궁금합니다. 그리고 또 궁금한 것은 하나의 프로그램에서 버퍼는 오직 하나만 존재하는 것인가요?

답변 1

답변을 작성해보세요.

1

강민철님의 프로필

강민철

2023.01.26

네, 그리고 프로그램에 버퍼가 오직 하나만 존재하냐는 질문에 대해서는,

하나의 입력 스트림마다 기본적으로 하나의 버퍼가 있지만

조금 더 명확하게는 다른 입력 스트림도 있습니다 (가령 file 스트림)

이런 경우에는 별도의 버퍼를 가지게 됩니다.