Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <cstdlib>
- #include <cstdlib>
- using namespace std;
- //********************************************************************************************************************************************************************
- class Dane
- {
- public:
- void zapisz_dane_do_pliku(string nazwa_pliku);
- void czytaj_dane_z_pliku();
- int ilosc_wierszy;
- int ilosc_kolumm;
- int **w_na_tablice;
- Dane(int ilosc_wierszy_, int ilosc_kolumn_);
- ~Dane();
- };
- Dane::Dane(int ilosc_wierszy_, int ilosc_kolumn_)
- {
- ilosc_wierszy = ilosc_wierszy_;
- ilosc_kolumm = ilosc_kolumn_;
- int ** tablica = new int *[ilosc_wierszy_];
- w_na_tablice = tablica;
- for (int i = 0; i<ilosc_wierszy_; i++)
- {
- tablica[i] = new int[ilosc_kolumn_];
- }
- for (int i = 0; i<ilosc_wierszy_; i++)
- {
- for (int j = 0; j<ilosc_kolumn_; j++)
- {
- tablica[i][j] = 5;
- }
- }
- }
- Dane::~Dane()
- {
- for (int i = 0; i<ilosc_wierszy; i++)
- {
- delete w_na_tablice[i];
- }
- delete w_na_tablice;
- }
- //------------------------------------------------------------------------------------------------------------------------------------------
- void Dane::zapisz_dane_do_pliku(string nazwa_pliku)
- {
- fstream plik;
- string nazwa_pliku_ = nazwa_pliku.append(".txt"); // tworzy plik o podanej nazwie przez urzytkownika
- plik.open(nazwa_pliku_, ios::out);
- plik << ilosc_wierszy<<" " << ilosc_kolumm<<" ";
- for (int i = 0; i <ilosc_wierszy; i++) {
- for (int j = 0; j < ilosc_kolumm; j++) {
- plik << w_na_tablice[i][j] << " ";
- }
- plik << endl;
- }
- plik.close();
- }
- //------------------------------------------------------------------------------------------------------------------------------------------
- void Dane::czytaj_dane_z_pliku()
- {
- fstream plik;
- string liczba_wierszy11 = "", liczba_kolumn11 ="", tymczasowa_wczytana_zmienna = "";
- char zmienna_do_porownania ;
- int liczba_wierszy_int, liczba_kolumn_int;
- plik.open("dane.txt", ios::in);
- if (plik.good() == true)
- {
- //****************************************************Wczytanie rozmiaru z 2 pierwszych liczb w pliku*************************************************************
- while (true)
- {
- plik.get(zmienna_do_porownania);
- if ( zmienna_do_porownania != ' ')
- {
- liczba_wierszy11.push_back(zmienna_do_porownania); // dodanie chara do stringa
- }
- else
- {
- break;
- }
- }
- while (true)
- {
- plik.get(zmienna_do_porownania);
- if (zmienna_do_porownania != ' ')
- {
- liczba_kolumn11.push_back(zmienna_do_porownania); // dodanie chara do stringa
- }
- else
- {
- break;
- }
- }
- //*************************************************************************************************************************************************************
- liczba_wierszy_int = atoi(liczba_wierszy11.c_str()); // konwersja stringa na inta
- liczba_kolumn_int = atoi(liczba_kolumn11.c_str());
- //*******************************************************Uzupełnianie macierzy z pliku*************************************************************************
- //-------------------------------------------------------Dynamiczne tworzenie macirzy o wczytanym rozmiarze----------------------------------------------------
- int **macierz = new int*[liczba_wierszy_int];
- for (int i = 0; i<liczba_wierszy_int; i++)
- {
- macierz[i] = new int[liczba_kolumn_int];
- }
- //-------------------------------------------------------Uzupełnianie macierzy----------------------------------------------------------------------------------
- for (int i = 0; i < liczba_wierszy_int; i++)
- {
- for (int j = 0; j < liczba_kolumn_int; j++)
- {
- while (true)
- {
- plik.get(zmienna_do_porownania);
- if (zmienna_do_porownania != ' ')
- {
- tymczasowa_wczytana_zmienna.push_back(zmienna_do_porownania);
- }
- else
- {
- macierz[i][j] = atoi(tymczasowa_wczytana_zmienna.c_str());
- tymczasowa_wczytana_zmienna = "";
- break;
- }
- }
- }
- }
- //****************************************************Wyświetlanie dal sprawdzenie poprawności wczytania****************************************
- for (int i = 0; i<liczba_wierszy_int; i++)
- {
- for (int j = 0; j<liczba_kolumn_int; j++)
- {
- cout << macierz[i][j]<<" ";
- }
- cout << endl;
- }
- //**********************************************************************************************************************************************
- plik.close();
- }
- //**********************************************************************************************************************************************
- else
- {
- cout << "nie ma pliku";
- }
- }
- //------------------------------------------------------------------------------------------------------------------------------------------
- int main()
- {
- Dane cos(3, 6);
- cos.zapisz_dane_do_pliku("dane");
- cos.czytaj_dane_z_pliku();
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment