#include <stdio.h> int main() { int i = 0; char c; while ( (c = getchar()) != EOF ) { printf("%d : %c\n", i++, c); } return 0; }
a 0 : a 1 : v 2 : v 3 :
v 2 : v 3 :
문자를 한번 입력받고 출력은 두번시키는 결과가 나오네요 ㅡ.ㅡ;; 이거 왜 이렇죠?
while 문 안의 getchar() 함수는 Enter 입력도 하나의 문자로 취급합니다.
따라서 먼저 while 문 안의 getchar() 에 대해서 Enter 값일 경우 입력받지 않도록 해야합니다.
유명한? 실수를 하셨습니다. :wink:
getchar()의 return type은 char가 아니라 int입니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
Enter 키도 입력값으로 들어가기 때문입니다.
while 문 안의 getchar() 함수는 Enter 입력도 하나의 문자로 취급합니다.
따라서 먼저 while 문 안의 getchar() 에 대해서 Enter 값일 경우 입력받지 않도록 해야합니다.
유명한? 실수를 하셨습니다. :wink: getchar()의 r
유명한? 실수를 하셨습니다. :wink:
getchar()의 return type은 char가 아니라 int입니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/