在实际应用中常常需要获取文件的大小,并根据得到的文件大小分配相应的内存给变量,然后把文件的所有内容放入到分配好的变量里面,不多说了,上代码自己看哈
FILE * pFile;
int nsize;
pFile = fopen ("file_temp","rb");
if (pFile==NULL)
{
cout <<"open error"<<endl;
return -1;
}
else
{
fseek (pFile, 0, SEEK_END); //将文件指针移动文件结尾
nsize=ftell (pFile); //求出当前文件指针距离文件开始的字节数
fclose (pFile);
//printf ("Size of file.cpp: %ld bytes.\n",nsize);
}
//读取文件内容
char *pResult = new char[nsize];
FILE *file=fopen("file_temp","rb");
fread(pResult,sizeof(char),nsize,file);
fclose(file);
上述的代码常常可以和protobuf文件反序列化一起使用,即得到了一个protobuf格式文件,然后获取到当前文件大小以及文件内容,在调用对应的protobuf格式来解析文件内容