작성
·
369
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
네, 그리고 프로그램에 버퍼가 오직 하나만 존재하냐는 질문에 대해서는,
하나의 입력 스트림마다 기본적으로 하나의 버퍼가 있지만
조금 더 명확하게는 다른 입력 스트림도 있습니다 (가령 file 스트림)
이런 경우에는 별도의 버퍼를 가지게 됩니다.