• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

putchar() getchar()

23.01.26 16:14 작성 조회수 328

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

강민철님의 프로필

강민철

2023.01.27

getchar() 함수는 표준 입력(stdin)에서 한 문자를 읽어서 입력 버퍼에 저장합니다.

가령 위 코드에서 ch = getchar();를 통해 처음에는 q값을 입력받았다고 하면

while문 안에있는 ch = getchar();에서는 입력 버퍼에 저장되어 있는 다음 입력값,

그러니까 wer값을 그대로 읽어옵니다.

따라서 while문 안에있는 ch = getchar();에서는

입력을 다시 하지 않아도 입력버퍼에 저장되어 있는 문자를 읽어오게 됩니다.