Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
bgm123
40 / 40 / 27
Регистрация: 29.01.2013
Сообщений: 277
1

Считать данные в структуру с помощью одного вызова fread

15.04.2013, 12:20. Просмотров 769. Ответов 1
Метки нет (Все метки)

Программа должна записывать в файл данные. А потом считать эти данные в структуру с помощью одного вызова fread. Вот какие возникли вопросы:
1)Размер структуры почему-то вместо 33 равен 36
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
 
#define ERR_OPEN_FILE 1
 
typedef struct _Base{
    int i;
    char c;
    int a[2];
    char name[20];
} Base;
 
 
int main(void)
{
    FILE *fp;
    int buf[2] = {53, 47};
    int a = 2; char ch = 'g'; double fl = 34.123; char name[20] = "qweuif";
    Base ob;
 
    fp = fopen("in.txt", "wb+");
    if(!fp) exit(ERR_OPEN_FILE);
 
    fwrite(&a, sizeof(int), 1, fp); 
    fwrite(&ch, sizeof(char), 1, fp);
    fwrite(buf, sizeof(int), 2, fp);
    
    fwrite(name, sizeof(char), 20, fp); 
 
    fclose(fp);
 
    fp = fopen("in.txt", "rb");
    if(!fp) exit(ERR_OPEN_FILE);
 
    fread(&ob, sizeof(Base), 1, fp);
 
    printf("%i\n", ob.i);
    printf("%c\n", ob.c);
    printf("%i, %i\n", ob.a[0], ob.a[1]);
    
    puts(ob.name);
 
    fclose(fp);
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 12:20
Ответы с готовыми решениями:

Считать данные из файла в структуру - исправить недочет в коде
Необходимо из файла записать в структуру, а потом вывести. Подскажите что не...

Как считать из файла сразу 1 массив и вывести его через fread?
Помогите пожалуйста, как с помощью fwite записать в файл массив 1 разом? ...

Считать структуру с файла
КАа считать структуру с файла?Текстовый или бинарный без разницы Структура...

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

Как считать в структуру возвращаемую переменную?
Добрый вечер, дамы и господа! Никак не могу понять. Есть структура. typedef...

1
anmartex
...
1711 / 1204 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
15.04.2013, 14:22 2
Цитата Сообщение от bgm123 Посмотреть сообщение
Размер структуры почему-то вместо 33 равен 36
Правильно, это называется выравниванием. Советую почитать: расставим точки над структурами C/C++

Цитата Сообщение от bgm123 Посмотреть сообщение
считываются некоректные данные. Почему ? Как это поправить?
Причина указана выше. Исправление лежит в отключении выравнивания для вашей структуры.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 14:22

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

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

Считать в структуру каждую строку файла, содержащую информацию о слонах
Каждая строка файла содержит информацию о слонах: кличка, рост, пол, вес....


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

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

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