-
feof()Visual Studio/C 기초 2013. 2. 14. 18:17
feof 함수에 대해 알아보겠습니다.
feof()는 파일의 마지막을 찾기 위해 사용하는 함수인데요, 파일의 정확한 길이를 모르는 상태에서 파일의 처음부터 마지막까지를 읽어들이기 원하는 경우엔 방법이 두 가지가 있습니다.
텍스트 모드의 파일에서 문자 단위로 값을 읽어들일 때는 EOF 문자를 찾을 수 있습니다. EOF는 표준 입출력에 정의되어 있는 -1값이며 실제론 사용되지 않는 값입니다. 그래서 EOF가 발견되면 파일의 마지막에 도달했다는 것을 알 수 있습니다.
while((c=fgetc(fp)) != EOF) //이런 식으로 찾을 수 있죠
이제 feof를 사용해보겠습니다.
int feof(FILE *fp);
인수 fp는 파일을 열 때 fopen()이 돌려주는 FILE형 포인터입니다. feof()는 파일 fp의 마지막에 도달하지 않았다면 0을 돌려주고 도달했다면 0이 아닌 값을 돌려줍니다. feof()를 사용해서 파일의 마지막에 도달했다는 것을 파악하면 rewind()를 수행하거나 fseek()를 사용하거나 파일을 닫고 다시 열 때까지 더 이상의 읽기 동작을 허용하지 않으면 됩니다.
예제를 보겠습니다.
#include <stdio.h>
#include <stdlib.h>#define BUF 100
main() {
char buf[BUF];
char filename[60];
FILE *fp;puts("표시할 텍스트 파일을 입력해주세요 :");
gets(filename);if((fp=fopen(filename,"r"))==NULL)
{
fprintf(stderr, "파일을 여는 데 실패했습니다");
exit(1);
}while(!feof(fp)) //파일의 마지막에 도달하지 않았다면 한 줄을 읽고 출력합니다.
{
fgets(buf,BUF,fp);
printf("%s",buf);
}
printf("\n");
fclose(fp);
}'Visual Studio > C 기초' 카테고리의 다른 글
C언어 파일 이름 변경하기 [rename()] (0) 2013.05.15 remove() (0) 2013.05.15 fseek() (0) 2012.11.05 ftell(), rewind() (0) 2012.11.04 fscanf(), fwrite(), fread() (0) 2012.11.04