Запись структуры в файл - C (СИ) (70329)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Исходный код записи структуры в файл:
#include <stdio.h>
 
typedef __int8  BYTE;
typedef __int32 DWORD;
typedef unsigned __int32 LONG;
typedef __int16 WORD;
 
#pragma pack (push, 1)
typedef struct 
{   WORD   bfType; 
    DWORD  bfSize; 
    WORD   bfReserved1; 
    WORD   bfReserved2; 
    DWORD  bfOffBits; 
} BITMAPFILEHEADER; 
#pragma pack (pop)
 
BITMAPFILEHEADER bfh ={0x4d42, 0x00000afe, 0x0000, 0x0000, 0x00000036};
 
void main(void)
{
 FILE* outfptr = fopen("result", "w");
 fwrite(&bfh, sizeof(BITMAPFILEHEADER), 1, outfptr);
 fclose(outfptr);
}
В результате в файл структура записана с лишним байтом (см. рис). Могли бы уважаемые специалисты подсказать почему это происходит и как вывести структуру в файл корректно?

Решение задачи: «Запись структуры в файл»

textual
Листинг программы
FILE* outfptr = fopen("result", "wb");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5