Это небольшая часть моего проекта в школе. Я сохранил свои данные в текстовом файле в этой форме:
bike
dock
car
Теперь я хотел бы прочитать данные из этого файла в двусвязный список. Это код, который я использовал.
#include <iostream>
#include <strings.h>
#include <fstream>
using namespace std;
class item
{
public:
string name;
item *next;
item *previous;
};
class list:private item
{
item * first;
public:
list();
void load();
void display();
};
list::list()
{
first = NULL;
}
void list::load()
{
item *current;
ifstream fin;
fin.open("List.txt");
current=new item;
while(!fin.eof())
{
fin>>current->name;
current->previous=NULL;
current->next=NULL;
}
fin.close();
first=current;
}
Теперь проблема в том, что я не могу сохранить каждое слово файла в новом узле. Этот код сохраняет последнее слово файла в первом узле списка. Я понятия не имею, как это сделать. Я не так хорош в связанных списках. Может ли кто-нибудь помочь мне решить эту проблему?
new
вне цикла. Вы должны выделять новый элемент для каждого слова, прочитанного из файла. - person Jabberwocky   schedule 24.08.2015std::list
? - person user657267   schedule 24.08.2015new item
вне цикла, поэтому вы получаете только один узел в списке. Кроме того, использованиеwhile(!fin.eof)
почти всегда неправильно. - person Bo Persson   schedule 24.08.2015