EOF처리가 안됩니다..

midradio Reply 9 years 26 weeks ago
전에 알려주신 110번째 줄 EOF처리를 끝에 EOF가 나오면 -2를 리턴해 빈도 새는 부분에서 -2가 나오면 나가도록 했는데 문제는 그 부분입니다.. d = getchar(); *w = d; if (cmtflag == 3) { if (d == 'EOF') { return -2; //comment with EOF } 위와 같이 d == EOF로 두면 런타임 에러가 나고 '\0'으로 바꾸면 WA가 납니다.. 왜 그런걸까요? EOF처리 테스트만 여러번 하는 것 같습니다.. 정말 감사합니다
pichulia Reply 9 years 26 weeks ago
EOF는 문자가 아닙니다. 에러메세지의 일종이에요. (수업시간에 공지라도 해야하나...왜 다들 문자처럼 취급하고있는건지 참... ) 'EOF'를 사용하면 의도한 것과는 다른 결과를 낳을겁니다. 그러니까 d == EOF 가 맞는 코드인거죠. 런타임에러가 나는 이유는 NKEY 값이 너무 작아서 그런거 같습니다.