读取内部具有不同字节长度值的二进制文件

时间:2016-04-13 23:50:16

标签: c c++11 io

如何读取长度不同的二进制文件?

例如,在3200字节的二进制文件之后有一个特定的值,它以4字节,2字节,2字节和1字节格式化。

我尝试使用

阅读
mysql_query("INSERT INTO 'db'.'frs_Payment'('payid', 'amount', 'paydatetime', 'empnin', 'custid', 'pstatusid', 'ptid')
         VALUES('','".$amount."','CURRENT_TIMESTAMP','".$empnin."','".$custid."','2','".$ptid."');");

然后将缓冲区变量中的4个字节的char变为一个char,然后将其转换为整数,但它不起作用。只显示它是否是一个字节长度。

1 个答案:

答案 0 :(得分:2)

首先,你寻找你想要阅读的位置:

2014-04-13

然后将文件中的4个字节读取到您想要的整数:

Incorrect date value: '1997' for column 'date' at row 1

如果文件的endian和您的系统相同,则此方法有效。否则,您将数字转换为系统的endian。 E.g。

fseek(file, 3200, SEEK_SET);