Witam męczę się od 4 godzin z programem mam zrobić projekt na studia system oceniający filmy filmy mają być wczytywane z pliku txt i tytuł reżyser max 3 aktorów 10 ostatnich ocen itp
próbuje wczytać plik do listy ale jak uruchamia się while(!plik.eof()) to pętla leci w nieskończoność a jak ręcznie skopiuje kod 3 razy tle ile na razie mam informacji to pierwszy się dobrze wypiszę a reszta krzaczki oto kod pierwsza partia informacji się wpisuję a jak skopiuje zawartość while 3 razy lub 2 a while za komentuje to wychodzą krzaczki Prosił bym o pomoc .
oto txt
Skazani na Shawshank
Frank Darabont
1994
USA
Tim Robbins
Morgan Freeman
brak
10 2 5 6 7 4 8 4 3 6
3.5
Ojciec chrzestny
Francis Ford Coppola
1972
USA
Marlon Brando
Al Pacino
James Caan
6 2 6 7 4 6 8 3 7 3
6.5
Lot nad kukułczym gniazdem
Miloš Forman
1975
USA
Jack Nicholson
Louise Fletcher
William Redfield
4 6 8 4 6 8 5 3 5 7
7.4
#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
using namespace std;
struct el_list{
string tytul;
string rezyser;
string rok;
string wytwornia;
string ak[3];
int oceny[10];
float srednia;
el_list *next;
};
void wczyt(el_list *head, el_list *nowy, el_list *temp){
ifstream plik("baza.txt");
if (plik){
//while (!plik.eof()){
nowy = new el_list;
getline(plik, nowy->tytul);
getline(plik, nowy->rezyser);
getline(plik, nowy->rok);
getline(plik, nowy->wytwornia);
getline(plik, nowy->ak[0]);
getline(plik, nowy->ak[1]);
getline(plik, nowy->ak[2]);
plik >> nowy->oceny[0];
plik >> nowy->oceny[1];
plik >> nowy->oceny[2];
plik >> nowy->oceny[3];
plik >> nowy->oceny[4];
plik >> nowy->oceny[5];
plik >> nowy->oceny[6];
plik >> nowy->oceny[7];
plik >> nowy->oceny[8];
plik >> nowy->oceny[9];
plik >> nowy->srednia;
temp->next = nowy;
temp = temp->next;
//}
nowy->next = NULL;
plik.close();
}
else{
cout << "nie udało się otworzyć pliku" << endl;
nowy->next = NULL;
}
}
void wyswietl(el_list * head, el_list *nowy, el_list *temp){
temp = head->next;
while (temp != NULL)
{
cout << temp->tytul << endl;
cout << temp->rezyser << endl;
cout << temp->rok << endl;
cout << temp->wytwornia << endl;
cout << temp->ak[0] << endl;
cout << temp->ak[1] << endl;
cout << temp->ak[2] << endl;
cout << temp->oceny[0] << endl;
cout << temp->oceny[1] << endl;
cout << temp->oceny[2] << endl;
cout << temp->oceny[3] << endl;
cout << temp->oceny[4] << endl;
cout << temp->oceny[5] << endl;
cout << temp->oceny[6] << endl;
cout << temp->oceny[7] << endl;
cout << temp->oceny[8] << endl;
cout << temp->oceny[9] << endl;
cout << temp->srednia << endl;
temp = temp->next;
}
}
int main(){
el_list *nowy;
el_list *temp;
el_list *head;
nowy = new el_list;
temp = nowy;
head = nowy;
wczyt(head, nowy, temp);
wyswietl(head, nowy, temp);
system("pause");
return 0;
}