Pi0trek

Dynamiczne tworzenie macierzy zapis/odczyt plik V0.01

Nov 29th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <cstdlib>
  5. #include <cstdlib>
  6. using namespace std;
  7. //********************************************************************************************************************************************************************
  8. class Dane
  9. {
  10. public:
  11.  
  12.     void zapisz_dane_do_pliku(string nazwa_pliku);
  13.     void czytaj_dane_z_pliku();
  14.     int ilosc_wierszy;
  15.     int ilosc_kolumm;
  16.     int **w_na_tablice;
  17.     Dane(int ilosc_wierszy_, int ilosc_kolumn_);
  18.     ~Dane();
  19.  
  20. };
  21. Dane::Dane(int ilosc_wierszy_, int ilosc_kolumn_)
  22. {
  23.     ilosc_wierszy = ilosc_wierszy_;
  24.     ilosc_kolumm = ilosc_kolumn_;
  25.  
  26.     int ** tablica = new int *[ilosc_wierszy_];
  27.     w_na_tablice = tablica;
  28.     for (int i = 0; i<ilosc_wierszy_; i++)
  29.     {
  30.         tablica[i] = new int[ilosc_kolumn_];
  31.     }
  32.  
  33.     for (int i = 0; i<ilosc_wierszy_; i++)
  34.     {
  35.         for (int j = 0; j<ilosc_kolumn_; j++)
  36.         {
  37.             tablica[i][j] = rand() /15;
  38.         }
  39.     }
  40. }
  41. Dane::~Dane()
  42. {
  43.     for (int i = 0; i<ilosc_wierszy; i++)
  44.     {
  45.         delete w_na_tablice[i];
  46.     }
  47.     delete w_na_tablice;
  48. }
  49. //------------------------------------------------------------------------------------------------------------------------------------------
  50. void Dane::zapisz_dane_do_pliku(string nazwa_pliku)
  51. {
  52.     fstream plik;
  53.     string nazwa_pliku_ = nazwa_pliku.append(".txt");
  54.     plik.open(nazwa_pliku_, ios::out);
  55.     plik << ilosc_wierszy<<" " << ilosc_kolumm<<" ";
  56.     for (int i = 0; i <ilosc_wierszy; i++) {
  57.         for (int j = 0; j < ilosc_kolumm; j++) {
  58.             plik << w_na_tablice[i][j] << " ";
  59.         }
  60.         plik << endl;
  61.     }
  62.     plik.close();
  63. }
  64. //------------------------------------------------------------------------------------------------------------------------------------------
  65.  
  66. void Dane::czytaj_dane_z_pliku()
  67. {
  68.     string linia;
  69.     fstream plik;
  70.     string liczba_wierszy11 = "", liczba_kolumn11 ="";
  71.     char zmienna_do_porownania ;
  72.     int liczba_wierszy_int, liczba_kolumn_int;
  73.    
  74.     plik.open("dane.txt", ios::in);
  75.  
  76.  
  77.     if (plik.good() == true)
  78.     {
  79.  
  80.         while (true)
  81.         {      
  82.             plik.get(zmienna_do_porownania);
  83.        
  84.             if ( zmienna_do_porownania != ' ')
  85.             {
  86.                 liczba_wierszy11.push_back(zmienna_do_porownania);     
  87.             }
  88.             else
  89.             {
  90.                 break;
  91.             }
  92.         }
  93.         while (true)
  94.         {
  95.             plik.get(zmienna_do_porownania);
  96.  
  97.             if (zmienna_do_porownania != ' ')
  98.             {
  99.                 liczba_kolumn11.push_back(zmienna_do_porownania);
  100.             }
  101.             else
  102.             {
  103.                 break;
  104.             }
  105.         }
  106.         liczba_wierszy_int = atoi(liczba_wierszy11.c_str());
  107.         liczba_kolumn_int = atoi(liczba_kolumn11.c_str());
  108.  
  109.    
  110.        
  111.         int **macierz = new int*[liczba_wierszy_int];
  112.         for (int i = 0; i<liczba_wierszy_int; i++)
  113.         {
  114.             macierz[i] = new int[liczba_kolumn_int];
  115.         }
  116.            
  117.             for (int i = 0; i < liczba_wierszy_int; i++)
  118.             {
  119.                 for (int j = 0; j < liczba_kolumn_int; j++)
  120.                 {
  121.                     plik.get(zmienna_do_porownania);
  122.                     if (zmienna_do_porownania != ' ')
  123.                     {
  124.  
  125.                         macierz[i][j] = zmienna_do_porownania;
  126.                        
  127.                     }
  128.                     else
  129.                     {
  130.                         plik.get(zmienna_do_porownania);
  131.                         cout << zmienna_do_porownania << " ";
  132.                         macierz[i][j] = zmienna_do_porownania;
  133.                         cout << macierz[i][j]<<endl;
  134.                     }
  135.  
  136.                 }
  137.             }
  138.  
  139.        
  140.    
  141.  
  142.         cout << liczba_wierszy11<<endl;
  143.         cout << liczba_kolumn11<<endl;
  144.  
  145.  
  146.         for (int i = 0; i<liczba_wierszy_int; i++)
  147.         {
  148.             for (int j = 0; j<liczba_kolumn_int; j++)
  149.             {
  150.                 cout << macierz[i][j]<<" ";
  151.             }
  152.             cout << endl;
  153.         }
  154.  
  155.  
  156.  
  157.         plik.close();
  158.     }
  159.     else
  160.     {
  161.         cout << "nie ma pliku";
  162.     }
  163.  
  164.  
  165.  
  166. }
  167. //------------------------------------------------------------------------------------------------------------------------------------------
  168.  
  169. int main()
  170. {
  171.     Dane cos(2, 6);
  172.     cos.zapisz_dane_do_pliku("dane4");
  173.     cos.czytaj_dane_z_pliku();
  174.     getchar();
  175.     return 0;
  176. }
Advertisement
Add Comment
Please, Sign In to add comment