2017-11-15 21 views
0
#include<stdio.h> 
int main(){ 
    int c = getchar(); 
    while(c != EOF){ 
     putchar(c); 
     c = getchar(); 
    } 
} 

위의 코드에서 c가 EOF가 된 후에 프로그램이 종료되지 않는 이유는 무엇입니까? 코드> 도서의 참조 : 18getchar(), putchar (char), EOF

+0

내가 우분투 리눅스 터미널에서 입력으로 를 입력 할 때 그것은 나를 위해 종료됩니다. 반환을 치면 getchar()가 EOF (-1)를 반환하지 않습니다. – Scooter

답변

0

getchar가() 파일의 마지막에 이르렀을 경우에만 EOF를 반환합니다 K & R은 C 프로그래밍 언어 2 판, 페이지입니다. 여기서 '파일'은 표준 입력 자체입니다. 이는 같이 쓸 수있다 :

#include <stdio.h> 
    int main() 
    { 
    int c; 
    while ((c = getchar()) != EOF) 
    { 
    /*getchar() returns the the next available value which is in the input 
    buffer*/  
    putchar(c); 
    } 
    } 
+0

위에서 수정 한 코드가 EOF 종료 프로그램에 도달하게 될 것이라고 주장하지 않았는지 확인하십시오. –