Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.08 KB | None | 0 0
  1. //===========================================================
  2. //  Wersja  Data        Autor                   Opis
  3. //  1.0     13.03.19    Przemysław Kaczyński  -
  4. //  2.0     20.03.19    Przemysław Kaczyński    dodano metody zapisu i poboru binarnego z pliku
  5. //===========================================================
  6.  
  7. #include <iostream>
  8. #include <string.h>
  9. #include <fstream>
  10.  
  11. using namespace std;
  12.  
  13. //===========================================================
  14.  
  15. class Osoba {
  16. private:
  17.     char nazwisko[64];
  18.     char imie[64];
  19.     unsigned int wiek;
  20. public:
  21.     Osoba();
  22.     Osoba(char nn[64], char ni[64], unsigned int wiek);
  23.     void Set(char n[], char i[], unsigned int w);
  24.     void View();
  25.     void View(int x);
  26.     ~Osoba();
  27.     void ToFileBin();
  28.     void FromFileBin();
  29. };
  30.  
  31.  
  32.  
  33. //============================================================
  34.  
  35. int main()
  36. {
  37.     Osoba Os;
  38.     Os.View();
  39.     cout << "======================================" << endl;
  40.     char N[256], I[256];
  41.     int w;
  42.     cout << "Podaj nazwisko: ";
  43.     cin >> N;
  44.     cout << "Podaj imie: ";
  45.     cin >> I;
  46.     cout << "Podaj wiek: ";
  47.     cin >> w;
  48.     Os.Set(N, I, w);
  49.     cout << "======================================" << endl;
  50.     cout << "Dane osoby: " << endl;
  51.     Os.View();
  52.     Os.ToFileBin();
  53.     cout << "======================================" << endl;
  54.     cout << "Dane osob odczytane binarnie z pliku: " << endl;
  55.     Os.FromFileBin();
  56.     cout << "======================================" << endl;
  57.     return 0;
  58. }
  59.  
  60. //============================================================
  61.  
  62. Osoba::Osoba()
  63. {
  64.     wiek = 0;
  65.     imie[0] = '\0';
  66.     nazwisko[0] = '\0';
  67. }
  68.  
  69. Osoba::Osoba(char nn[64], char ni[64], unsigned int nw)
  70. {
  71.     for (int i = 0; i < 64; i++) imie[i] = ni[i];
  72.     for (int i = 0; i < 64; i++) nazwisko[i] = nn[i];
  73.     wiek = nw;
  74. }
  75.  
  76. void Osoba::Set(char n[], char i[], unsigned int w)
  77. {
  78.     strcpy(nazwisko, n);
  79.     strcpy(imie, i);
  80.     wiek = w;
  81. }
  82.  
  83.  
  84. void Osoba::View()
  85. {
  86.     cout << nazwisko << " " << imie << " " << wiek << endl;
  87. }
  88.  
  89. void Osoba::View(int x)
  90. {
  91.     if (x == 0)
  92.     {
  93.         int i = 0;
  94.         cout << "Imie: ";
  95.         while (imie[i] != '\0')
  96.         {
  97.             cout << imie[i];
  98.             i++;
  99.         }
  100.     }
  101.     else if (x == 1)
  102.     {
  103.         int i = 0;
  104.         cout << "Nazwisko: ";
  105.         while (nazwisko[i] != '\0')
  106.         {
  107.             cout << nazwisko[i];
  108.             i++;
  109.         }
  110.     }
  111.     else if (x == 2)
  112.     {
  113.         cout << "Wiek: " << wiek << endl;
  114.     }
  115.     else {}
  116. }
  117. void Osoba::ToFileBin()
  118. {
  119. fstream plik("osoba.bin", ios::binary | ios::app | ios::out);
  120. plik.write((const char *)&nazwisko, sizeof nazwisko);
  121. plik.write((const char *)&imie, sizeof imie);
  122. plik.write((const char *)&wiek, sizeof wiek);
  123. plik.clear();
  124. plik.close();
  125. }
  126.  
  127. void Osoba::FromFileBin()
  128. {
  129. fstream plik2("osoba.bin", ios::binary | ios:: in);
  130. plik2.seekg (0, ios::end);
  131. int dlugoscpliku = plik2.tellg();
  132. plik2.seekg (0, ios::beg);
  133. unsigned int binwiek;
  134. char binnazw[64], binimie[64];
  135.  
  136. while(plik2.tellg() < dlugoscpliku)
  137. {
  138.     plik2.read((char *)&binnazw, sizeof(nazwisko));
  139.     plik2.read((char *)&binimie, sizeof(imie));
  140.     plik2.read((char *)&binwiek, sizeof(wiek));
  141.     cout << binnazw << " " << binimie << " " << binwiek << endl;
  142. }
  143. plik2.clear();
  144. plik2.close();
  145.  
  146. }
  147.  
  148. Osoba::~Osoba()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement