2016-05-13 2 views
-3

У меня есть двоичный файл, у файла есть char, float, integer long integer и double.Как узнать символ байта в двоичном файле в C?

записей в файле (в режиме реального двоичного файла все данные будут двоичная и не будет никаких пробелов или символов новой строки):

«л» 9,8 5,64 1 8 «0» ...

и мне интересно, как я могу узнать тип первого байта, второй байт ... (я имею в виду, что он должен сказать мне: первый байт - это символ, второй байт - поплавок, третий байт - это двойной ...)

+0

Пожалуйста, добавьте код на свой вопрос! –

+2

Не зная что-то о том, что находится в файле, вы действительно не можете сказать. Это как сказать: «Я слышал, что кто-то подсчитал до 5 ... как я могу сказать, что они подсчитывают?» – Dmitri

ответ

4

Байт - это всего лишь число от 0 и 255. У него нет типа. char, int, float и другие типы - это разные способы интерпретации значений (значений) одного или нескольких смежных байтов.

Например, значение 65 является A. Но когда вы читаете байт из файла, нет способа сказать это, если это номер 65 или символ A. Он также может быть одним байтом из двухбайтового целочисленного числа (и вы должны также прочитать следующий байт, чтобы получить весь номер).

Ваш код определяет, как интерпретировать данные.

+2

Чтобы добавить к этому, чтобы решить, нам нужно знать код для _writer_ файла [или спецификацию формата файла] и использовать их в качестве руководства –