Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение структуры List из файла, структуры List из файла 
:(
    Опции темы
valera19841987
Дата 15.11.2014, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.11.2014

Репутация: нет
Всего: нет



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

#include"stdafx.h"
#include"iostream"
#include"conio.h"
#include "stdio.h"
#include "fstream"


using namespace std;

struct Data        
    {
        unsigned day;        
        unsigned month;        
        unsigned year;
    };

struct T_student 
{
        int id ;
        char fio[40];
        char facult[20];
        unsigned  kurs;
        Data d_birth;
}; 

struct List
{
    T_student student;
    List *next;
};

class facultet
{
private:
    List *head;

public:
    facultet()
    {
    
    head = NULL;
        List *node1 = new List;
        T_student a = {102,"Ivanov I. I.","FIST",3,1,1,1994};
        node1->student = a;
        node1->next = head;
        head = node1;
        List *node2 = new List;
        T_student b = {103,"Petrov N. I.","MF",1,10,12,1992};
        node2->student = b;
        node2->next = head;
        head = node2;
    
    }

    void insert_before()
    {
        head=NULL;
        T_student a; 
        char c;
        cout <<"Vvedite id " ;
        cin>>a.id;
        cin.get©;
        cout << endl <<"Enter data person\n";
        cout <<" fio ";
        cin.getline(a.fio,40);
        cout <<" facultet ";
        cin.getline(a.facult,20);
    
        cout <<" kurs ";
        cin >> a.kurs;
        
        cin.get©;
        cout << endl <<"Enter date of birthday: \n";
        cout <<" day (1-31) ";
        cin >> a.d_birth.day;
        
        cin.get©;
        cout <<" month (1-12)";
        cin >> a.d_birth.month;
        
        cin.get©;
        cout <<" year ";
        cin >> a.d_birth.year;
        
        cin.get©;
        

        List *node = new List;
        node->student = a;
        node->next = head;
        head = node;
            
    }    


void M_File()

    {
        FILE *f;
       f=fopen("C:/s.txt","r");
        
        T_student a;
    
T_student [100] ;

    
    while(!feof(f))
    {
        fscanf(f,"%4d%20s%10s%4d%2d%2d%4d\n",a.id,a.fio,a.facult,a.kurs,a.d_birth.day,a.d_birth.month,a.d_birth.year);
        
    
    }

    fclose(f);
     }
    

Вот файл который надо считать

100         Ivanov T.T.       Fri   4 1 22014

 101         Petrov F.A.       TWO   5 3 21987



PM MAIL   Вверх
feodorv
Дата 17.11.2014, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(valera19841987 @  15.11.2014,  19:28 Найти цитируемый пост)
       fscanf(f,"%4d%20s%10s%4d%2d%2d%4d\n",a.id,a.fio,a.facult,a.kurs,a.d_birth.day,a.d_birth.month,a.d_birth.year);

Вы в курсе, что scanf работает иначе, чем printf? Что нужно передавать в scanf не значения переменных для формата %d (как в printf), а адреса этих переменных? Программа не падает?


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
sQu1rr
Дата 17.11.2014, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(valera19841987 @  15.11.2014,  19:28 Найти цитируемый пост)
#include"stdafx.h"
#include"iostream"
#include"conio.h"
#include "stdio.h"
#include "fstream"

Как это вообще компилируется...
Вообще, хорошая практика не мешать С++ с С, и если уж используете std::cout, std::cin, используйте уж std::ifstream а не fscanf, к тому же заголовок (хоть и через .) но делает вид что подключен
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.