Чтение структуры из файла C++
Односвязный список, указатель след.
struct Telefstans
{
char Nomer[30];
char Familia[20];
char Adress[20];
char Nal_block[20];
char Zadoljenost[20];
struct Telefstans *next;
} ;
struct Telefstans *NahSpis=NULL;
....
....
....
Если сохранял так
void saveall()
{
FILE *file;
struct Telefstans *tek,*r;
file=fopen("1.bin","wb");
tek=NahSpis;
while(tek!=0)
{
fwrite(tek,sizeof(Telefstans),1,file);
tek=tek->next;
}
fcloseall();
puts("rezervniy file sozdan");
getch();
}
Вопрос:
То как прочитать теперь это? )
Эта функция читает не правильно) как не крутил, как не менял, не пойму что не так
void loadall()
{
FILE *file;
file=fopen("1.bin","rb");
struct Telefstans *tek;
tek=new Telefstans;
while(fread(tek,sizeof(Telefstans),1,file)!=0)
{
if (NahSpis!=NULL)
{ NahSpis=NahSpis->next; NahSpis=tek; }
else NahSpis=tek;
tek=new Telefstans;
}
delete tek;
fclose(file);
}
К примеру сохранял структуру
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
В итоге читает 4 4 4 4 4.
Отладчиком прокручивал, читать читает, записывать записывает, но похоже что каким то образом оно должно было сменить строку в списке, т. е. оно читало 1 1 1 1 1, записало, потом на это же место 2 2 2 2 2, и так до 5 5 5 5 5. Только вот я никак не пойму почему)