如何从bin文件读取16位二进制数存入到int型数组中
如题所示,想从bin文件中读取数据到数组中,先试了下数组元素为16位的,各种木有问题#include "stdio.h"
#include<stdlib.h>
#define N 256
#define matrix1 N*N
typedef short WORD;
main()
{
unsigned int i;
//int *a =(int*)malloc(sizeof(int)*matrix1);
WORD *a =(WORD*)malloc(sizeof(WORD)*matrix1);
FILE* fp = fopen("f:\\svd_256\\date0109\\codes_Rand_QAM_-90dB.bin","r");
if (fp == NULL)
{
printf("文件打开失败");
return -1;
}
fread(a,2,matrix1,fp);
fclose(fp);
for (i=0;i<8;i++)
{
printf("a[%d]=%X\n",i,a[i]);
}
printf("fread done");
}
当把数组改为int *a =(int*)malloc(sizeof(int)*matrix1);其他不变,用fread,每个元素里面存了两个16位的数,第二个在前,第一个在低位
是不是fread不能实现这个功能,如果想实现,该怎么做?
讨论一下