Witam.
Chciałbym wczytać z pliku tekstowego plik.txt do listy. Program nie wyrzuca błędów, ale gdy chcę wypisać listę na ekran wypisuje się tylko 1 osoba, a dokładnej:
Jan Kowalski 21 99
Wygląda na to, że lista ma tylko jeden element, więc obstawiam, że błąd jest gdzieś w pętli while.
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace std;
struct Osoby{
string imie;
string nazwisko;
int wiek;
float skutecznosc;
struct Osoby *next;
};
int main() {
struct Osoby *head=NULL, *tmp=NULL;
ifstream Plik;
Plik.open("plik.txt");
if(Plik.good())
cout<<"Udalo sie otworzyc plik!"<<endl;
else{
cout<<"Nie udalo sie otworzyc pliku!"<<endl;
return 0;
}
tmp=new struct Osoby;
head=tmp;
while(Plik>>tmp->imie && Plik>>tmp->nazwisko && Plik>>tmp->wiek && Plik>>tmp->skutecznosc){
tmp->next=NULL;
tmp=tmp->next;
tmp=new struct Osoby;
}
for(tmp=head; tmp; tmp=tmp->next)
cout<<tmp->imie<<" "<<tmp->nazwisko<<" "<<tmp->wiek<<" "<<tmp->skutecznosc<<endl;
Plik.close();
return 0;
}
Zawartość pliku: plik.txt
Jan Kowalski 21 99
Adam Nowak 12 45
Anna Kowalska 19 20