2017-02-01 69 views
0

嗨,大家好我读了一个二进制文件,它由1000个未知C结构的记录组成。结构有这些数据类型char(1字节)int(4字节) long long int(8字节)float(4字节)和double(8字节)并且在每条记录的末尾有一个双变量,该记录中的所有其他数据字段。结构中的最大数据字段可以是11(包括平均字段)。 例如如何检查二进制文件中变量的数据类型c

struct data{ 
char v1; 
int v2; 
float v3; 
double v4; 
long long int v5; 
int v6; 

double avg; 
} 

我无法找到一个方法来检查这是我从二进制file.Only的事情,我需要阅读的变量的类型是一个提示只有你能告诉我一个方法如何找到的数据类型。

+1

该文件应该有一个已知的格式,告诉你每个记录的大小和类型。没有这些,就没有办法知道那里有什么。 – dbush

+2

二进制文件中的数据没有类型。一旦将它读入程序中的变量中,该变量就具有您定义的任何类型。 –

+0

但我的教授一直说这是正确的,你可以找到一种方法:)我没有任何想法... –

回答

0

从某种意义上说,没有答案。您可以构建看起来像是一种格式的数据,而实际上采用不同的格式。 实际上,你几乎总是可以“眼球”它。以double,s float,各种宽度的整数形式打印数据,并且一个序列看起来很明智,并且与实际数据相似。

但是你知道最后一个成员是双重的也是一个意思。因此,只需将数据加载到内存缓冲区中,将其转换为int *,float *等,然后合计总和,计算平均值,然后检查。

相关问题