當前位置:首頁 » 編程語言 » c語言ftell函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言ftell函數

發布時間: 2023-05-27 16:25:52

A. 如何用C語言獲取文件的大小

C語言中獲取文件大小方式基納有很多,在不使用任何系統命令,僅使用C自身庫函數情況下,常用方式有兩種:

一、獲取文件系統屬性,讀取文件大小。

在C語言庫函數中有stat函數,可以獲取文件的基本信息,其中就有文件大小。

#include<sys/stat.h>//包含頭文件。
intfile_size(char*filename)//獲取文件名為filename的文件大小。
{
structstatstatbuf;
intret;
ret=stat(filename,&statbuf);//調用stat函數
if(ret!=0)return-1;//獲取失敗。
returnstatbuf.st_size;//返迴文件大小。
}

二、通過C語言文件操作,獲取文件大小。

以fopen打開的文件,通過fseek可以定位到文件尾,這時使用ftell函數,返回的文件指針偏移值,就是文件的實際大小。

代碼如下:

#include<stdio.h>//包含頭文件。碧鏈
intfile_size(char*filename)//獲取文件名為filename的文件大小。
{
FILE*fp=fopen(filename,"rb");//打開文件。
intsize;
if(fp==NULL)//打開文件失敗
return-1;
fseek(fp,0,SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
returnsize;
}

三、注意事項:

第一種方式為直接讀取文件信息,無需悔鋒孫打開文件,所以更高效。

四、測試代碼:

以上介面函數,均可以用如下主函數測試:

#include<stdio.h>
intmain()
{
chars[100];
intsize;
scanf("%s",s);//輸入文件名
size=file_size(s);//獲取文件大小。
if(size==-1)printf("無法獲取文件大小,可能文件並不存在或不可讀 ");
elseprintf("文件大小為%d ",size);
return0;
}

B. 如何用C語言獲取文件的大小

/*解題思路基衫:以只讀方式打開某一文件,然後將文件指針定位在文件結尾的位置,利用搏咐腔ftell函數返回指針的在文件中的相對位簡察置即可。
*/

#include"stdio.h"

main()
{FILE*fp;/*定義文件指針*/
longcnt;/*定義變數cnt用來存儲文件大小數據*/
fp=fopen("c:\1.txt","r");/*此處請填寫測試文件的地址,並以只讀("r")方式打開文件*/
if(fp==NULL)/*如果打開的文件不存在,則退出*/
{exit(0);
printf("文件打開失敗!");
}
fseek(fp,0L,SEEK_END);/*利用fseek函數將指針定位在文件結尾的位置*/
cnt=ftell(fp);/*利用ftell函數返回指針相對於文件開頭的位置,以位元組計算*/
printf("文件所佔的位元組數為%ld個 ",cnt);/*進行輸出*/
}

C. C語言 第十六題C和D是啥意思

C——ftell函數返回相對於文件開頭的指針位置,所以用fseek(fp,-ftell(fp),1);就可以把文件指針移到文件開頭位置,其中1表示從當前位置開始,-表示向前移。D——fseek(fp,0,2);中2表示從文件最後開始,0表示移動0個字元,所以移不到開頭去。所以D是錯誤的,選D。

D. C語言 文件定位

C語言文件定位,主要依靠fseek函數實現,具體代碼如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp=NULL;
long len=0L;//文件長度
fp=fopen("test.dat","rb");//假設當前目錄有test.dat文件
if(!fp)//檢查文件打開是否正常
{
printf("文件打開失敗,程序退出!\n");
exit(1);
}
fseek(fp,0L,SEEK_END);//文件定位到文件末尾
len=ftell(fp);//獲取文件長度
if(len/1024>0)
printf("文件大小為%ldKB!\n",len/1024);
else
printf("文件大小為%ldB!\n",len);
rewind(fp);//文件指針移到開始處
if(fp)//關閉文件
{
fclose(fp);
fp=NULL;
}
return 0;
}

int fseek( FILE *stream, long offset, int origin );函數fseek()為文件指針stream設置位置數據。origin的值應該是下列值之一,
SEEK_SET(從文件的開始處開始搜索)
SEEK_CUR(從當前位置開始搜索)
SEEK_END(從文件的結束處開始搜索)
fseek()成功時返回0,失敗時返回非零。