#include<stdio.h>

int main(){ 
        FILE* fp = fopen("data.txt","r+");
        int input = 0;

        if(fp==NULL)
                puts("파일열기오류");

        while(input != EOF){
                input = fgetc(fp);
                printf("%d",input);
                fputc(EOF, fp);
        }

        if(fclose(fp)==EOF)
                puts("파일닫기오류");

        return 0;
}

data.txt 에 암것도 입력안하고 저장한담에 실행하면 -1잘뜨는데

data.txt다시열면 공백문자 비스무리하게 EOF 같은게 입력되있는데 

메모장도 data.txt읽을때 EOF만나면 읽기 중단하는거아닌가>? 왜 내가 직접 파일에 EOF쓰기 하면 빈칸이생김?

* 내가질문하고 싶은 요점은 메모장이 EOF를만나면 읽기 중단하는거같은데
그럼 data.txt파일의 내용이 내가 eof를 썻으니까 EOF EOF 이 2byte가 된거야? 그럼 메모장이 읽어도 EOF만나면 끝이니까 아무것도 안써져야하는거아니야? data.txt를 열면 내가 EOF를 입력했으니까 EOF같은 공백이 하나 있는게 원래정상?

아니그리고 애초에 텍스트뷰어에서 EOF를 출력하는게 말이되는건가? 이해가안감 EOF만나면 끝아님?