Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. void Wektor::zapisz(string nazwaPliku) const
  2. {
  3.     ofstream plik;                                                                              // deklaracja pliku strumieniowego o nazwie 'plik'
  4.     plik.open( (nazwaPliku + ".txt").c_str(), ios::out | ios::trunc );                          // otworzenie pliku / funkcja. c_str zamienia string na
  5.     if( plik.good() )                                                                           // c-string tzn. na tablice char'ów, której oczekuje funkcja open
  6.     {
  7.         plik << iloscLiczb_ << ":" << endl;
  8.          for ( int i=0; i < iloscLiczb_; i++ )                                                  // wypisanie np '3:'
  9.             plik << liczby_[ i ].Re() << "+"                                             // wypisanie kazdej liczby zespolonej w postaci
  10.                  << liczby_[ i ].Im() << "i  ";
  11.                                                                                                 // np. 2,-3j
  12.     }
  13.     else cout << "Blad! Otwarcie pliku " << nazwaPliku << ".txt nie powiodlo sie." << endl;     // jesli plik nie jest good to komunikat na ekran
  14.  
  15. }
  16.  
  17. void Wektor::wczytaj(string nazwaPliku)
  18. {
  19.     ifstream plik;                                                                              // deklaracja strumienia plikowego / wejsciowego o nazwie 'plik'
  20.     string tmp;                                                                                 // pomocniczy string
  21.     plik.open( (nazwaPliku + ".txt").c_str() );                                                 // otwieranie pliku... jak w zapisz
  22.     if( plik.good() )                                                                           // jesli plik good
  23.     {
  24.         getline(plik, tmp, ':');                                                                // wez string z pliku do tmp do napotkania znaku ':'
  25.         iloscLiczb_ = konwNaDouble( tmp );                                                      // trzeba przekonwertowac string na double
  26.         delete liczby_;                                                                         // dealokacja tego co bylo
  27.         liczby_ = new Zespolona [ iloscLiczb_ ];                                                 // alokacja nowej tablicy o rozmiarze zczytanego z pliku
  28.         plik.ignore();                                                                          // ignoruje znak nowej linii i przechodzi dalej
  29.         for( int i=0; i < iloscLiczb_; i++ )
  30.         {
  31.             getline(plik, tmp, '+');                                                            // zapisujemy wartosc do tmp wczytanej do '+'
  32.             liczby_[ i ].Re() = konwNaDouble( tmp );                                            // konwersja i przypisanie
  33.             getline(plik, tmp, 'i');                                                            // --------- /////////////////// -------- 'i'
  34.             liczby_[ i ].Im() = konwNaDouble( tmp );                                            // --------- /////////////////// --------
  35.             plik.ignore();                                                                      // ingoruj znak nowej linii
  36.         }
  37.     }
  38.     else cout << "Blad! Otwarcie pliku " << nazwaPliku << ".txt nie powiodlo sie." << endl;     // jesli plik nie jest good to komunikat na ekran
  39.     plik.close();
  40. }
  41.  
  42. double Wektor::konwNaDouble(string napis) const
  43. {
  44.     double wartosc;
  45.     stringstream ss;                                                                            // strumien stringowy
  46.     ss << napis;                                                                                // wrzucamy stringa
  47.     ss >> wartosc;                                                                              // odbieramy double'a
  48.     return wartosc;                                                                             // zwrot
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement