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

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

  1. 123456789igor

    123456789igor Active Member

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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

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

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

    woka Гость

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

    123456789igor Active Member

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

    Whatka Well-Known Member

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

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

    Код (C++):
    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 Well-Known Member
    Команда форума C\C++ Team

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

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