Advertisement
Guest User

Untitled

a guest
May 6th, 2017
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. void wczytaj_z_pliku();
  9. void zmien_rozmiar(vector <vector<int> > &lista_sasiedztwa, vector <int> wiersz, int ilosc_wierzcholkow);
  10. void dodaj_do_listy(vector <vector<int> > &lista_sasiedztwa, int pierwszy_wierzcholek, int drugi_wierzcholek);
  11. void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa);
  12.  
  13.  
  14. int main()
  15. {
  16.     wczytaj_z_pliku();
  17.  
  18.     return 0;
  19. }
  20.  
  21. void wczytaj_z_pliku()
  22. {
  23.     string linia;
  24.     string bufor;
  25.  
  26.     int ilosc_wierzchlkow;
  27.     int rozmiar_lini;
  28.     int id = 0;
  29.     int ilosc_krawedzi;
  30.     int pierwszy_wierzcholek;
  31.     int drugi_wierzcholek;
  32.  
  33.  
  34.     vector <int> wiersz;
  35.     vector <vector<int> > lista_sasiedztwa(1, wiersz);
  36.  
  37.     fstream plik;
  38.     plik.open("plik.txt",ios::in);
  39.  
  40.     while(!plik.eof())
  41.     {
  42.         getline(plik,linia);
  43.         cout<<"linia: "<<linia<<endl;
  44.         rozmiar_lini = linia.size()-1;
  45.         switch(id)
  46.         {
  47. // wczytuje liczbe z napisu do spacji i po spacji i odpowiednio rozdzielam wiedzac jakie jest ulozenie liczb w pliku
  48. // np   string = '1245 567'; liczba a = 1245, liczba b = 567
  49.         case 0:
  50.         {
  51.             for(int i=0; i < rozmiar_lini; i++)
  52.             {
  53.                 if(linia[i] == ' ')
  54.                 {
  55.                     bufor.clear();
  56.                     for(int j=0; j < i; j++)
  57.                     {
  58.                         bufor[j] = linia[j];
  59.                     }
  60.  
  61.                     ilosc_wierzchlkow = atoi(bufor.c_str());
  62.                     bufor.clear();
  63.  
  64.                     cout<<"ilosc_wierzchlkow: "<<ilosc_wierzchlkow<<endl;
  65.                     zmien_rozmiar(lista_sasiedztwa, wiersz, ilosc_wierzchlkow);
  66.  
  67.                     int roboczy = 0;
  68.  
  69.                     for(int j = i+1; j < rozmiar_lini; j++)
  70.                     {
  71.                         bufor[roboczy] = linia[j];
  72.                         roboczy++;
  73.                     }
  74.                     ilosc_krawedzi = atoi(bufor.c_str());
  75.                     cout<<"ilosc_krawedzi: "<<ilosc_krawedzi<<endl;
  76.                 }
  77.             }
  78.         }
  79.         break;
  80.  
  81.         default:
  82.         {
  83.             for(int i=0; i < rozmiar_lini; i++)
  84.             {
  85.                 if(linia[i] == ' ')
  86.                 {
  87.                     bufor.clear();
  88.                     for(int j=0; j < i; j++)
  89.                     {
  90.                         bufor[j] = linia[j];
  91.                     }
  92.                     pierwszy_wierzcholek = atoi(bufor.c_str());
  93.                     cout<<"pierwszy_wierzcholek: "<<pierwszy_wierzcholek<<endl;
  94.  
  95.                     int roboczy = 0;
  96.                     for(int j = i + 1; j <= rozmiar_lini; j++)
  97.                     {
  98.                         bufor[roboczy] = linia[j];
  99.                         roboczy ++;
  100.                     }
  101.                     roboczy = 0;
  102.                     drugi_wierzcholek = atoi(bufor.c_str());
  103.                     bufor.clear();
  104.  
  105.                     cout<<"drugi_wierzcholek: "<<drugi_wierzcholek<<endl;
  106.                     dodaj_do_listy(lista_sasiedztwa, pierwszy_wierzcholek, drugi_wierzcholek);
  107.                 }
  108.             }
  109.         }
  110.         break;
  111.         }//koniec switch
  112.         id++;
  113.     } //koniec while
  114. plik.close();
  115. przeczytaj_sasiadow(lista_sasiedztwa);
  116.  
  117. }// koniec funkcji
  118.  
  119. void zmien_rozmiar(vector <vector<int> > &lista_sasiedztwa, vector <int> wiersz, int ilosc_wierzcholkow)
  120. {
  121.     lista_sasiedztwa.resize(ilosc_wierzcholkow, wiersz);
  122. }
  123. void dodaj_do_listy(vector <vector<int> > &lista_sasiedztwa,int pierwszy_wierzcholek, int drugi_wierzcholek)
  124. {
  125.     lista_sasiedztwa[drugi_wierzcholek].push_back(pierwszy_wierzcholek);
  126.     lista_sasiedztwa[pierwszy_wierzcholek].push_back(drugi_wierzcholek);
  127. }
  128. void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa)
  129. {
  130.  
  131.     /*for(int i = 0; i <= lista_sasiedztwa.size(); i++)
  132.     {
  133.         for(int j = 0; j <= lista_sasiedztwa[i].size(); j++)
  134.         {
  135.             cout<<lista_sasiedztwa[i][j]<<endl;
  136.         }
  137.         cout<<endl;
  138.     }*/
  139.     cout<<lista_sasiedztwa.size()<<endl;
  140.     cout<<lista_sasiedztwa[1].size()<<endl;
  141.  
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement