2013-09-06 1 views
0

루프 외부의 putchar (c) 값은 얼마입니까?여기 putchar (c)의 값은 무엇입니까 '_'입니까?

main() 
{ 
    int c; 

    while (c = getchar() != EOF) { 
    printf("printf c_inloop :%d\n",c); 
    printf("Putchar c_inside: "); 
    putchar(c); 
    printf("\n\n"); 
    } 

    putchar(c); 
    printf("printf c_outloop %d",c); /*outside loop*/ 

} 

나는이 프로그램을 실행하면, "일"(wtq) 키를 누릅니다 cmd를 (윈도우)에 입력 말 :

th 
printf c_inloop :1 
Putchar c_inside:(gives me a smileyface emoticon) 

printf c_inloop :1 
Putchar c_inside:(gives me a smileyface emoticon) 

printf c_inloop :1 
Putchar c_inside:(gives me a smileyface emoticon) 


^Z (Ctrl + Z) 
printf c_outloop 0 

printf c_outloop 0 전에 공간. putchar(c) 스페이스의 값입니까?

답변

1

루프를 종료하면 c의 값은 유효한 문자 값이 아니기 때문에 EOF이며 이는 파일 끝을 나타내는 데 사용됩니다. putchar으로 전달하는 것은 의미가 없습니다.

+0

그래서 왜 그 공간이 있습니까? 그것은 무엇을 상징합니까? – user2282137

+0

아무 것도. 그것은 말도 안되는 조작으로 생긴 쓰레기 결과 일뿐입니다. –

+0

값은 부울이 아닙니까? 사실인가 거짓인가? 브래킷을 제거하면 외부의 printf_c 값이 -1이되고 EOF 값이 0이되지 않습니다. – user2282137