Witam chce napisac program ktory bedzie zapisywal dane do pliku a pozniej wyswietlal te dane. Program niestety oczytuje mi tylko pierwszą daną ( nie działa mi chyba kolejka)
KOD :
http://pastebin.com/vLjWaWu6
0
0
matky napisał(a):
... oczytuje mi tylko pierwszą daną ...
Mylisz się, nie odczytuje niczego.
Otwierasz w trybie dopisywania do końca (czyli wskaźnik na końcu pliku) i próbujesz czytać.
0
Hej,
najszybszą przeróbką jaką możesz wprowadzić jest zmiana funkcji wczytaj i rezygnacja z funkcji wyswietl().
void baza::wczytaj(){
std::ifstream strumien_file;
strumien_file.open("plik2.txt", std::ios::in);
strumien_file.seekg(0,std::ios::beg);
while (strumien_file >> nazwa) {
std::cout << "\tImie: " << nazwa << std::endl;
}
strumien_file.close();
};
i wtedy switch na poczatku:
switch (znak) {
case '1':
lista = new baza(NULL);
lista->pobierz();
lista->zapisz();
std::cout << " zapisano !";
break;
case '2':
lista = new baza(NULL);
lista->wczytaj();
break;
}
Moim zdaniem próbujesz czytać jakbyś miał zaimplementowaną listę jednokierunkową i funckja wyswietl() dla obiekt = obiekt->nastepny pobiera smieci. Zastanów się jaki jest Twój cel. Czy chcesz mieć różne obiekty i w nich zapisane imiona czy po prostu czytać z pliku.
Pozdrawiam,