c语言求文件长度,ftell得到文件长度为-1

Python014

c语言求文件长度,ftell得到文件长度为-1,第1张

C语言获取文件长度及全部内容,参考代码如下:

         

       FILE*fp

       fp=fopen("localfile","rb")// localfile文件名       

       fseek(fp,0L,SEEK_END) /* 定位到文件末尾 */

flen=ftell(fp) /* 得到文件大小 */

p=(char *)malloc(flen+1) /* 根据文件大小动态分配内存空间 */

if(p==NULL)

{

fclose(fp)

return 0

}

fseek(fp,0L,SEEK_SET) /* 定位到文件开头 */

fread(p,flen,1,fp) /* 一次性读取全部文件内容 */

p[flen]=0 /* 字符串结束标志 */ 

all:strchange.o

    gcc -o strchange.o -c strchange.c

strchange.o:strchange.c

    gcc -o strchange strchange.o

clean:

    rm -rf strchange *.o

第一种方法: 也可以读取一个不定长的文件。

FILE *pFile = fopen( pFilePath, \"r\" )

if ( pFile == NULL )

{

return 0

}

fseek( pFile, 0, SEEK_END )

iFileLen = ftell( pFile )

rewind( pFile )

m_pFileText = new char[iFileLen+1]

fread( m_pFileText, 1, iFileLen, pFile )

m_pFileText[iFileLen] = 0

fclose( pFile )

第二种方法:

// 计算字符个数

FILE *pFile = fopen( pFilePath, \"r\" )

char ch

int num = 0

while ( ch = getc( pFile ) != EOF )

{

num++

}

fclose( pFile )