작성
·
399
0
char ch;
ch = getchar();
while (ch != '\n')
{
putchar (ch);
ch = getchar ();
}
putchar (ch);
위쪽에 있는 ch = getchar();를 통해 qwer의 문자를 입력 받았다고 하면
putchar()에서 한문자씩 출력이 되서 처음에는 q값이 출력이 되면
그 다음 코드인 ch = getchar();를 만나는데
여기서 다시 ch의 값을 다시 입력해줘달라는 코드 아닌가요?
처음 ch = getchar();에서는 입력을 받았는데 왜 while문 안에있는 ch = getchar();에서는 입력을 다시 안하는 건가요??
답변 1
0
getchar() 함수는 표준 입력(stdin)에서 한 문자를 읽어서 입력 버퍼에 저장합니다.
가령 위 코드에서 ch = getchar();를 통해 처음에는 q값을 입력받았다고 하면
while문 안에있는 ch = getchar();에서는 입력 버퍼에 저장되어 있는 다음 입력값,
그러니까 wer값을 그대로 읽어옵니다.
따라서 while문 안에있는 ch = getchar();에서는
입력을 다시 하지 않아도 입력버퍼에 저장되어 있는 문자를 읽어오게 됩니다.