Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===========================================================
- // Wersja Data Autor Opis
- // 1.0 13.03.19 Przemysław Kaczyński -
- // 2.0 20.03.19 Przemysław Kaczyński dodano metody zapisu i poboru binarnego z pliku
- //===========================================================
- #include <iostream>
- #include <string.h>
- #include <fstream>
- using namespace std;
- //===========================================================
- class Osoba {
- private:
- char nazwisko[64];
- char imie[64];
- unsigned int wiek;
- public:
- Osoba();
- Osoba(char nn[64], char ni[64], unsigned int wiek);
- void Set(char n[], char i[], unsigned int w);
- void View();
- void View(int x);
- ~Osoba();
- void ToFileBin();
- void FromFileBin();
- };
- //============================================================
- int main()
- {
- Osoba Os;
- Os.View();
- cout << "======================================" << endl;
- char N[256], I[256];
- int w;
- cout << "Podaj nazwisko: ";
- cin >> N;
- cout << "Podaj imie: ";
- cin >> I;
- cout << "Podaj wiek: ";
- cin >> w;
- Os.Set(N, I, w);
- cout << "======================================" << endl;
- cout << "Dane osoby: " << endl;
- Os.View();
- Os.ToFileBin();
- cout << "======================================" << endl;
- cout << "Dane osob odczytane binarnie z pliku: " << endl;
- Os.FromFileBin();
- cout << "======================================" << endl;
- return 0;
- }
- //============================================================
- Osoba::Osoba()
- {
- wiek = 0;
- imie[0] = '\0';
- nazwisko[0] = '\0';
- }
- Osoba::Osoba(char nn[64], char ni[64], unsigned int nw)
- {
- for (int i = 0; i < 64; i++) imie[i] = ni[i];
- for (int i = 0; i < 64; i++) nazwisko[i] = nn[i];
- wiek = nw;
- }
- void Osoba::Set(char n[], char i[], unsigned int w)
- {
- strcpy(nazwisko, n);
- strcpy(imie, i);
- wiek = w;
- }
- void Osoba::View()
- {
- cout << nazwisko << " " << imie << " " << wiek << endl;
- }
- void Osoba::View(int x)
- {
- if (x == 0)
- {
- int i = 0;
- cout << "Imie: ";
- while (imie[i] != '\0')
- {
- cout << imie[i];
- i++;
- }
- }
- else if (x == 1)
- {
- int i = 0;
- cout << "Nazwisko: ";
- while (nazwisko[i] != '\0')
- {
- cout << nazwisko[i];
- i++;
- }
- }
- else if (x == 2)
- {
- cout << "Wiek: " << wiek << endl;
- }
- else {}
- }
- void Osoba::ToFileBin()
- {
- fstream plik("osoba.bin", ios::binary | ios::app | ios::out);
- plik.write((const char *)&nazwisko, sizeof nazwisko);
- plik.write((const char *)&imie, sizeof imie);
- plik.write((const char *)&wiek, sizeof wiek);
- plik.clear();
- plik.close();
- }
- void Osoba::FromFileBin()
- {
- fstream plik2("osoba.bin", ios::binary | ios:: in);
- plik2.seekg (0, ios::end);
- int dlugoscpliku = plik2.tellg();
- plik2.seekg (0, ios::beg);
- unsigned int binwiek;
- char binnazw[64], binimie[64];
- while(plik2.tellg() < dlugoscpliku)
- {
- plik2.read((char *)&binnazw, sizeof(nazwisko));
- plik2.read((char *)&binimie, sizeof(imie));
- plik2.read((char *)&binwiek, sizeof(wiek));
- cout << binnazw << " " << binimie << " " << binwiek << endl;
- }
- plik2.clear();
- plik2.close();
- }
- Osoba::~Osoba()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement