getchar 함수 문제인데요..

ar의 이미지

 #include <stdio.h>

 int main()
 {
   int   i = 0;
   char  c;

   while ( (c = getchar()) != EOF )
   {
     printf("%d : %c\n", i++, c);
   }

   return 0;
 }

Quote:
a
0 : a
1 :

v
2 : v
3 :

문자를 한번 입력받고 출력은 두번시키는 결과가 나오네요 ㅡ.ㅡ;;
이거 왜 이렇죠?

jachin의 이미지

while 문 안의 getchar() 함수는 Enter 입력도 하나의 문자로 취급합니다.

따라서 먼저 while 문 안의 getchar() 에 대해서 Enter 값일 경우 입력받지 않도록 해야합니다.

cinsk의 이미지

유명한? 실수를 하셨습니다. :wink:

getchar()의 return type은 char가 아니라 int입니다.