#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만나면 끝아님?
이 병신을 어떡게 처리해야되지??
파일 포인터 커서가 이동해서 그런거같네요
놀다가3학년 // 헐 ㅋㅋ 여기병신한명추가요
fgetc()한번 호출하면 다음 칸으로 포인터가 움직임. 그자리에 EOF가 써진거같다는 말
13123 // 나 잘못함 내말이 어디가 틀렸는지 설명좀 앙망
EOF 문자란건 없어 븅신아
http://stackoverflow.com/a/3061170/1300095
EOF를 저렇게 쓰는건지 다시생가좀해라 병신들아
프갤 왜케 물더러워졌지 존나 병신들만 모였네
그래서 보통 읽기용 스트림이랑 쓰기용 스트림 따로 만드는데 그거 말하는건가?
놀다가3학년 // 너 c언어모르지?
EOF문자란게 없다는건 아는데, 위글 중에 공백 문자가 왜 생겼는지 그 이유를 난 말한건데 틀렸음?
13123//나 c언어 예전에 봐서 잘 모름 위에 모른다고 썼잖아 내말이 틀린지 지적좀 해달라고.
정말고마워 내가시발 참병신이구나
내가 \'EOF가 써졌다고\' 써놨네 그건 잘못했음 ㅜ
그 공백문자는 EOF로 정의된 정수랑 \"우연히\" 같은 아스키 값을 가지는 문자야. 무슨 스트림 얘기가 나오지?
파일 포인터 커서 얘기는 왜 함?
c//본문에 빈칸 생겼다고 해서 그거 이유를 들면서 거기까지 말하게됨
총체적 난국이구나 하하
암튼 질문자한테 답변이 됐기를 바람
엄청난 답변이었어 ㅜㅜ 고마워 형