Заполнение списка из файла

263
27 апреля 2017, 16:29

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

struct Students{
    string surname;
    int number;
    float average_point;
    string study; 
    Students *Next, *Prev;
};

Я попробовал сделать таким способом, но не удачно, список не выводится.

 ifstream fin ("sgl.txt");
        Students *tmp=new Students;
            tmp->Next=NULL;
            fin>> tmp->average_point
            >> tmp->number
            >> tmp->surname;
            count ++;
            if (!head){
                tmp->Prev=NULL;
                head=tmp;
                tail=head;
            }
            else{
                tmp->Prev=tail;
                tail->Next=tmp;
                tail=tmp;
            }
     }
Answer 1

Вообщем наверно не самый лучший метод. Сначала считываем в структуру (мне по заданию нужно было), а потом просто присваиваем элементам списка соответствующие элементы из структуры.

        ifstream fin("sgsec.txt");
        if (!fin){
            cout << "File can't be open";
        }
        else{              
            list2 = new Students[C];
            for (int i=0; i<C; i++){
                fin >> list2[i].surname 
                >> list2[i].number 
                >> list2[i].average_point 
                >> list2[i].study;
                Students *tmp=new Students;
            tmp->Next=NULL;
            tmp->average_point=list2[i].average_point ;
            tmp->number= list2[i].number;
            tmp->surname=list2[i].surname ;
            count ++;
            if (!head){
                tmp->Prev=NULL;
                head=tmp;
                tail=head;
            }
            else{
                tmp->Prev=tail;
                tail->Next=tmp;
                tail=tmp;
            }
READ ALSO
Как вернуть меню [требует правки]

Как вернуть меню [требует правки]

Как вернуть меню что снизу экрана (Компилятор Ресурсы Журнал Компиляции) в Dev C++

343
Помогите найти ошибку в коде C++

Помогите найти ошибку в коде C++

Код записывает в массив остатки от деления, что бы перевести число в двоичную системуНо необходимо "перевернуть" числа

238
Как сделать выход из бесконечного цикла c++?

Как сделать выход из бесконечного цикла c++?

Программа делит число a на число b, если получившаяся дробь является бесконечной программа должна вывести на экран NO, иначе вывести получившуюся...

195