#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/
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
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/
댓글 달기