C언어 공부중에 ftell함수를 이용해서 파일의 크기를 계산하는 프로그램을 만드는 예제가 있어서 작성해 보았는데요
#include <stdio.h>
int Sizeoffile(FILE*fp);
int main(void)
{
FILE * fp=fopen("FILE_NAME.FILE","rb");
long size;
size=Sizeoffile(fp);
printf("파일의 크기는 %ld 입니다 \n",size);
return 0;
}
int Sizeoffile(FILE*fp)
{
while(fgetc(fp)!=EOF){}
return ftell(fp);
}
fgetc함수를 써서 파일의 끝까지 파일 위치 지시자를 이동하고
그 파일위치 지시자의 위치를 반환해서 파일 크기를 계산해내게 했는데요
답안을 보니까
long GetFileSize(file * fp)
{
long fpos;
long fsize;
fpos=ftell(fp);
fseek(fp,0,SEEK_END);
fsize=ftell(fp);
fseek(fp, fpos, SEEK_SET);
return fsize;
}
하는 식으로 파일을 불러오는 도중에 계속 크기를 출력하더라구요
답안에서 왜 fpos,fsize라는 변수를 만들어서 계속 위치를 저장하는건가요??
답안처럼 코드를 작성해야하나요?