读取二进制文件的一种方式:
inline size_t readBinaryFile(const char * filename,unsigned char* & data)
{
FILE* fp = fopen(filename, "rb+"); //以二进制读取的方式打开文件
if (fp == NULL) return 0; //空指针则返回0,文件打开失败
fseek(fp, 0, SEEK_END); //将文件指针移动至文件末尾
size_t size = ftell(fp); //计算文件大小,单位:Byte
fseek(fp, 0, SEEK_SET); //把文件指针移回初始位置(文件开头)
data = (unsigned char *)malloc(sizeof(unsigned char)*size); //分配内存
fread(data,size,1,fp); //读取数据
int NewData[10]; //这里的NewData只是一个例子,用于存放int类型数据
memset(NewData,0,10); //初始化NewData
for (int j=0; j<10; j++)
{
NewData[j] = (int)data[j]; //将char类型数据强制转换成int类型数据,方便加减乘除操作
}
fclose(fp); //关闭文件操作句柄
return size; //返回文件中数据的大小
}