【问题标题】:How to check data type of a variable in binary file in c如何在c中检查二进制文件中变量的数据类型
【发布时间】:2017-06-18 18:17:03
【问题描述】:

大家好,我阅读了一个二进制文件,其中包含 1000 条未知 C 结构的记录。结构有这些数据类型 char(1 字节) int(4 字节) long long int(8 字节)float(4 字节)和 double(8 字节),在每条记录的末尾有一个 double 变量,用于保持该记录中所有其他数据字段的平均值。结构中的最大数据字段可以是 11(包括平均字段)。 例如

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

double avg;
}

我找不到检查从二进制文件中读取的变量类型的方法。我需要的只是提示,您能告诉我如何查找数据类型。

【问题讨论】:

  • 文件应该有一个已知的格式,告诉你每条记录的大小和类型。没有它,就无法知道那里有什么。
  • 二进制文件中的数据没有类型。一旦将其读入程序中的变量,该变量就会具有您定义的任何类型。
  • 但是我的教授一直说这是正确的,你可以找到一个方法:) 我不知道......

标签: c database variables types binaryfiles


【解决方案1】:

在某种意义上,没有答案。您可以构建看起来是一种格式但实际上是另一种格式的数据。 实际上,您几乎总是可以“注视”它。将数据打印为双精度浮点数、各种宽度的整数流,一个序列看起来合理且像真实数据。

但是知道最后一个成员是双重的,也是一个平均值,这对您有所帮助。所以只需将数据加载到内存缓冲区中,转换为 int *、float * 等,将总数相加,计算平均值,然后检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2018-04-27
    • 2022-11-23
    • 1970-01-01
    • 2013-04-13
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多