0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 64
1

Запись структуры в файл

13.11.2016, 23:44. Показов 2723. Ответов 2
Метки нет (Все метки)

Здравствуйте!

Исходный код записи структуры в файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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);
}
В результате в файл структура записана с лишним байтом (см. рис).
Могли бы уважаемые специалисты подсказать почему это происходит и как вывести структуру в файл корректно?
Миниатюры
Запись структуры в файл  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2016, 23:44
Ответы с готовыми решениями:

Запись структуры в файл
Дан файл (testNEW.txt), в котором записана информация о ноутбуках. Часть этой информации нужно...

Запись структуры в файл
Что я не так делаю ?Облазил много тем и так и не понял почему оно не работает. int main(){ int...

Запись структуры в файл
есть структура struct base { int id; char name; }; typedef struct base office; ...

Запись структуры в файл
Как правильно будет записать структуру данных в файл, что бы затем без проблем его можно было...

2
nd2
3419 / 2799 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
14.11.2016, 03:15 2
Лучший ответ Сообщение было отмечено Todini как решение

Решение

Цитата Сообщение от Todini Посмотреть сообщение
FILE* outfptr = fopen("result", "w");
Цитата Сообщение от Todini Посмотреть сообщение
и как вывести структуру в файл корректно?
C++
1
FILE* outfptr = fopen("result", "wb");
Добавлено через 6 минут
При записи в текстовом режиме, байт со значением 0xA ('\n') будет преобразован (в Windows) в два байта: 0xD ('\r') и 0xA ('\n').
1
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 64
14.11.2016, 07:39  [ТС] 3
Спасибо большое!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2016, 07:39

Запись структуры в бинарный файл
если вам покажутся мои вопросы глупыми, не удивляйтесь, решил сам с нуля изучать си, есть книжки...

Неправильная запись структуры в файл
Добрый вечер. Передаю данные из структуры в файл, но вместо того, что записываю я, в файле...

Запись структуры папок в файл
С помощью system(&quot;tree /f&quot;) можно вывести на экран структуру папок того места где находится...

Запись из структуры в файл и обратно
Всем привет! Никак не могу нормально считать и записать з файла в структуру и обратно. Коды...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.