1、獲得文件大小
int getfilesize(char *path)
{
FILE *pf;//文件指針
pf = fopen(path, "r");
if(pf == NULL)
{
return -1;
}
else
{
fseek(pf, 0, SEEK_END);//文件指針移動到末尾
int num = ftell(pf);//用於得到文件位置指針當前位置相對於文件首的偏移字節數
fclose(pf);
return num;
}
}
fseek
用法:int fseek(FILE *stream, long offset, int fromwhere);//函數設置文件指針stream的位置
功能:用於得到文件位置指針當前位置相對於文件首的偏移字節數
用法:long ftell(FILE *stream);
2、獲得行數
int getn(char *path)
{
FILE *pf;//文件指針
pf = fopen(path, "r");
if(pf == NULL)
{
return -1;
}
else
{
int i = 0;
while(!feof(pf))//檢測流上的文件結束符
{
char str[275];
fgets(str,275,pf);//讀取一行
i++;//計算行數
}
fclose(pf);
return i;
}
}
feof
功能:檢測流上的文件結束符,如果文件結束,則返回非0值,否則返回0
用法:int feof(FILE *stream);
fgets
功能:從文件結構體指針stream中讀取數據,每次讀取一行。讀取的數據保存在buf指向的字符數組中,每次最多讀取bufsize-1個字符(第bufsize個字符賦'\0'),如果文件中的該行,不足bufsize個字符,則讀完該行就結束。如若該行(包括最後一個換行符)的字符數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩衝區總是以NULL字符結尾,對fgets的下一次調用會繼續讀該行。函數成功將返回buf,失敗或讀到文件結尾返回NULL。
用法:char *fgets(char *buf, int bufsize, FILE *stream);