Во-первых, обычно не рекомендуется копировать неупакованные struct-типы в файлы, так как компилятор может добавить заполнение в структуру, чтобы выровнять ее в памяти.Таким образом, вы получите либо непереносимую реализацию, либо какой-то искаженный вывод, когда кто-то другой попытается прочитать ваш файл, а биты / байты не будут размещены с правильным смещением из-за байтов заполнения компилятора.* Во-вторых, я не уверен, как вы читаете свой файл обратно (кажется, вы просто скопировали его в буфер и попытались его распечатать), но последний набор байтов имеет тип int
в конце ...она не будет строкой с нулевым символом в конце, поэтому способ ее печати не будет выглядеть «правильным» ... печать строк с нулевым символом в конце, так как строки могут также привести к переполнению буфера, что приведет к ошибкам сегментации и т. д.1004 *
Чтобы прочитать содержимое файла в удобочитаемом формате, вам необходимо открыть файл и прочитать содержимое обратно в правильные структуры данных / типы, а затем соответствующим образом вызвать printf
илинекоторые другие средства преобразования двоичных данных в данные ASCII для распечатки.