1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Массив Структур Из Файла

Тема в разделе "С и С++", создана пользователем 123456789igor, 1 янв 2012.

  1. 123456789igor

    123456789igor Active Member

    Репутация:
    0
    Регистрация:
    12 янв 2011
    Сообщения:
    29
    Симпатии:
    0
    Всех с прошедшим Новым Годом!!!!
    Как считать массив структур из файла(в каждую структуру входит 3 компонента: Имя, Возраст, Номер группы)?
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    сначала надо описать такую структуру
    потом использовать функцию fwrite для записи в файл и fread для чтения
    http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/
    что конкретно не получается?

    С наступившим.
     
  3. woka

    woka Гость

    Репутация:
    0
    блин я помню как это когда то давно делал в универе. в методе ведь всё есть! конкретнее вопрос если что то не получается.
     
  4. 123456789igor

    123456789igor Active Member

    Репутация:
    0
    Регистрация:
    12 янв 2011
    Сообщения:
    29
    Симпатии:
    0
    Можете скинуть пример??? А то я не могу понять как из файла считать всё в массив структур.
     
  5. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    воспользуемся всё-таки советом r04
    Вот объявление структуры:

    Код:
    struct information 
    {
    char name[15];
    int age,group;
    }q[20];//массив из 20 структур
    читаем из файла: (вся информация через пробел !! Петя 18 4)

    Код:
    FILE*in;
    int k(0),e(0);
    in=fopen("Input.txt","rt");
    for(int i=0;i<20;i++)
    {	
    fgets(s,30,in);
    while(s[e]!=' ')
    {	
    q[i].name[e]=s[e];
    e++;
    }
    e++;
    k=(s[e]-48)*10;
    e++;
    k=k+(s[e]-48);
    e+=2;
    q[i].age=k;
    q[i].group=s[e]-48;
    }
     
  6. rrrFer

    rrrFer Гость

    Репутация:
    0
    Whatka
    Код:
    for(int i=0;i<20;i++)
    лучше использовать feof(), т.к. чаще всего не известно сколько записей в файле
    Скорее всего, файл двоичный(ведь там структуры определенного типа), тогда надо(и много проще) использовать fwrite, чем fgets.
    Но я примеров приводить не буду, т.к. усердия в ТС не вижу.
     
Загрузка...

Поделиться этой страницей