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

HiHello

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

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;

            }
     }
1 ответ

HiHello

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

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;

            }
</c;>

licensed under cc by-sa 3.0 with attribution.