Facebook
From Red Monkey, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 157
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. struct lot                    // deklaracja struktury danych - lista jednokierunkowa
  8. {
  9.     string symbol_lotu;
  10.     string lotnisko_startowe;
  11.     string data;
  12.     string nazwisko;
  13.     int nr_siedzenia;
  14.     lot* nastepny;
  15.  
  16. };
  17.  
  18. void wypisz(lot* glowa)
  19. {
  20.  
  21.     if (!glowa)
  22.     {
  23.         cout << glowa->symbol_lotu << ";" <<  endl;
  24.         wypisz(glowa->nastepny);
  25.     }
  26. }
  27.  
  28. void wczytaj_elementy_z_pliku(string test, lot*& glowa) // funkcja wczytuje elementy z pliku i zapisuje w strukturze danych - liście jednokierunkowej
  29. {
  30.  
  31.     fstream plik;
  32.     plik.open("test.txt");
  33.     if (plik.good() == 0)
  34.     {
  35.         cout << " Błąd! Nie można otworzyć pliku ! " << endl;
  36.         return;
  37.     }
  38.     else
  39.     {
  40.         lot* nowy;
  41.         lot* pomocnicza;
  42.         if (glowa)
  43.         {
  44.             pomocnicza = glowa;
  45.             while (pomocnicza)
  46.             {
  47.                 if (pomocnicza->nastepny != nullptr)
  48.                     pomocnicza = pomocnicza->nastepny; // pomocnicza jest ostatnim elementem
  49.                 else
  50.                     break;
  51.             }
  52.             nowy = new lot; // nowy element
  53.             pomocnicza->nastepny = nowy; //ustawianie wskaznika na nowy element
  54.             nowy->nastepny = nullptr;
  55.         }
  56.         else
  57.         {
  58.             nowy = new lot;
  59.             nowy->nastepny = nullptr;
  60.             glowa = nowy;
  61.  
  62.         }
  63.         int nr_linii = 0;
  64.         while (plik)
  65.         {
  66.             nowy = new lot;
  67.             while (nr_linii < 4)
  68.             {
  69.                 switch (nr_linii)
  70.                 {
  71.                 case 0: plik >> nowy->symbol_lotu;       cout << nowy ->symbol_lotu << endl;             break;
  72.                 case 1: plik >> nowy->lotnisko_startowe; cout << nowy->lotnisko_startowe << endl;        break;
  73.                 case 2: plik >> nowy->data;              cout << nowy->data << endl;                     break;
  74.                 case 3: plik >> nowy->nazwisko;          cout << nowy->nazwisko << endl;                 break;
  75.                 case 4: plik >> nowy->nr_siedzenia;      cout << nowy->nr_siedzenia << endl;             break;
  76.                 }
  77.                 nr_linii++;
  78.             }
  79.             if (nr_linii = 4)
  80.             {
  81.                 nr_linii = 0;
  82.             }
  83.         }
  84.     }
  85.     wypisz(glowa);
  86.  
  87. }
  88. int main()
  89. {
  90.     lot* glowa = nullptr;
  91.     string test = "test.txt";
  92.     wczytaj_elementy_z_pliku(test, glowa);
  93.     return 0;
  94. }