Programowanie i struktury danych

Podobne dokumenty
1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

Programowanie w językach

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Operacje wejścia/wyjścia (odsłona druga) - pliki

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Wykład 9 Pliki cz.3 (getline(string)) Typ wyliczeniowy enum

Wejście wyjście strumieniowe

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Pliki wykład 2. Dorota Pylak

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

C++ - [3-5] Pliki i strumienie w C++

Pliki wykład. Dorota Pylak

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)

Pliki wykład 2. Dorota Pylak

Pliki wykład. Dorota Pylak

Programowanie Procedurale. Pliki w języku C++

Pliki i manipulatory. - Łańcuchowe funkcje wejścia - getline(string) Dorota Pylak - Tryby otwarcia pliku - Formatowanie manipulatory

Wprowadzenie do programowania i programowanie obiektowe

Język C++ wykład VIII

Programowanie i struktury danych

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

Operacje na plikach (niskiego poziomu) < IO.H >

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Programowanie obiektowe

Funkcje zawarte w bibliotece < io.h >

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Dziedziczenie & W slajdach są materiały zapożyczone z

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Wykład :37 PP2_W9

Funkcje zawarte w bibliotece < io.h >

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Programowanie w językach wysokiego poziomu

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Biblioteka standardowa - operacje wejścia/wyjścia

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Programowanie Obiektowe i C++

Pytania sprawdzające wiedzę z programowania C++

jest mocny, skoro da się w nim wyrazić nowe pojęcia; łatwiej przenieść go na nową platformę jest mniejszy.

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

I znowu można jak w C, za pomocą starych struktur i metod:

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Pliki. Operacje na plikach w Pascalu

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Operacje wejścia/wyjścia odsłona pierwsza

Algorytmy zwiazane z gramatykami bezkontekstowymi

Podstawy programowania skrót z wykładów:

Operatory na rzecz typu TString

Część 4 życie programu

Wykład 2 Operacje wejściawyjścia. Ewa Gajda

Wstęp do programowania. Dariusz Wardecki, wyk. X

Zaawansowane programowanie w języku C++ Biblioteka standardowa

Programowanie obiektowe w C++ Wykªad 4

Podstawy Programowania Podstawowa składnia języka C++

1. Wprowadzenie do C/C++

Pliki. Informacje ogólne. Obsługa plików w języku C

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Wstęp do Informatyki

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Wstęp do Programowania 2

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

Zasady programowania Dokumentacja

Programowanie Procedurale

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Programowanie komputerowe. Zajęcia 1

1. Wprowadzenie do C/C++

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Pliki. Informacje ogólne. Obsługa plików w języku C

Techniki Programowania wskaźniki

Programowanie Obiektowew języku C++ Zadania L4

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do Programowania 2

Języki programowania

Podstawy programowania w języku C++

Typy danych i formatowanie

obiekty funkcyjne - funktory

dr inż. Jarosław Forenc

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wykład 4. Tablice. Pliki

Wstęp do programowania obiektowego

Programowanie i struktury danych

Wstęp do Programowania 2

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy programowania w C++

Transkrypt:

Programowanie i struktury danych Wykªad 3 1 / 37

tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37

binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Zapis i odczyt pliku binarnego jest zrealizowany w postaci porcji bajtów, a nast pnie porcja ta mo»e by zinterpretowana jako okre±lony typ danych. Elementem jednostkowym pliku binarnego jest jeden bajt. Format pliku binarnego : [ bajty pliku ] [ EOF ] EOF znak ko«ca pliku (end of le) ctrl+z - systemy windowsowe ctrl+d - UNIX i Macintosch 3 / 37

binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Zapis i odczyt pliku binarnego jest zrealizowany w postaci porcji bajtów, a nast pnie porcja ta mo»e by zinterpretowana jako okre±lony typ danych. Elementem jednostkowym pliku binarnego jest jeden bajt. Format pliku binarnego : [ bajty pliku ] [ EOF ] EOF znak ko«ca pliku (end of le) ctrl+z - systemy windowsowe ctrl+d - UNIX i Macintosch 4 / 37

binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Zapis i odczyt pliku binarnego jest zrealizowany w postaci porcji bajtów, a nast pnie porcja ta mo»e by zinterpretowana jako okre±lony typ danych. Elementem jednostkowym pliku binarnego jest jeden bajt. Format pliku binarnego : [ bajty pliku ] [ EOF ] EOF znak ko«ca pliku (end of le) ctrl+z - systemy windowsowe ctrl+d - UNIX i Macintosch 5 / 37

binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Zapis i odczyt pliku binarnego jest zrealizowany w postaci porcji bajtów, a nast pnie porcja ta mo»e by zinterpretowana jako okre±lony typ danych. Elementem jednostkowym pliku binarnego jest jeden bajt. Format pliku binarnego : [ bajty pliku ] [ EOF ] EOF znak ko«ca pliku (end of le) ctrl+z - systemy windowsowe ctrl+d - UNIX i Macintosch 6 / 37

tekstowe tekstowe binarne Plik tekstowy to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Jednak bajty te mog by zinterpretowane jedynie jako pojedyncze znaki albo ªa«cuchy. Elementem jednostkowym pliku tekstowego jest znak. Format pliku tekstowego : [ znaki 1 linii pliku ] [/ r ] [/ n] [ znaki 2 linii pliku ] [/ r] [/ n]............................................. [ znaki ostatniej linii pliku ][ EOF ] /r znak powrotu karetki, /n znak ko«ca linii w pliku. 7 / 37

tekstowe tekstowe binarne Plik tekstowy to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Jednak bajty te mog by zinterpretowane jedynie jako pojedyncze znaki albo ªa«cuchy. Elementem jednostkowym pliku tekstowego jest znak. Format pliku tekstowego : [ znaki 1 linii pliku ] [/ r ] [/ n] [ znaki 2 linii pliku ] [/ r] [/ n]............................................. [ znaki ostatniej linii pliku ][ EOF ] /r znak powrotu karetki, /n znak ko«ca linii w pliku. 8 / 37

tekstowe tekstowe binarne Plik tekstowy to ci g bajtów zapami tanych w pami ci zewn trznej (dyskowej). Jednak bajty te mog by zinterpretowane jedynie jako pojedyncze znaki albo ªa«cuchy. Elementem jednostkowym pliku tekstowego jest znak. Format pliku tekstowego : [ znaki 1 linii pliku ] [/ r ] [/ n] [ znaki 2 linii pliku ] [/ r] [/ n]............................................. [ znaki ostatniej linii pliku ][ EOF ] /r znak powrotu karetki, /n znak ko«ca linii w pliku. 9 / 37

tekstowe binarne tekstowe zapis do pliku tekstowego Nale»y 1 U»y klasy ofstream do obsªugi strumienia wyj±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cout test25.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wyjsciowego i nazwij go alaout ofstream alaout (" ala. txt ") ; } alaout<<"w pliku :\ n" ; // zapisz do pliku cout<<" Na ekranie : " ; // wypisz na ekranie float x ; cin>>x ; alaout<<" Twoj tajny numer to "<< x <<endl ; alaout. close () ; // zamknij plik return 0 ; 10 / 37

tekstowe binarne tekstowe zapis do pliku tekstowego Nale»y 1 U»y klasy ofstream do obsªugi strumienia wyj±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cout test25.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wyjsciowego i nazwij go alaout ofstream alaout (" ala. txt ") ; } alaout<<"w pliku :\ n" ; // zapisz do pliku cout<<" Na ekranie : " ; // wypisz na ekranie float x ; cin>>x ; alaout<<" Twoj tajny numer to "<< x <<endl ; alaout. close () ; // zamknij plik return 0 ; 11 / 37

tekstowe binarne tekstowe zapis do pliku tekstowego Nale»y 1 U»y klasy ofstream do obsªugi strumienia wyj±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cout test25.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wyjsciowego i nazwij go alaout ofstream alaout (" ala. txt ") ; } alaout<<"w pliku :\ n" ; // zapisz do pliku cout<<" Na ekranie : " ; // wypisz na ekranie float x ; cin>>x ; alaout<<" Twoj tajny numer to "<< x <<endl ; alaout. close () ; // zamknij plik return 0 ; 12 / 37

tekstowe binarne tekstowe zapis do pliku tekstowego Nale»y 1 U»y klasy ofstream do obsªugi strumienia wyj±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cout test25.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wyjsciowego i nazwij go alaout ofstream alaout (" ala. txt ") ; } alaout<<"w pliku :\ n" ; // zapisz do pliku cout<<" Na ekranie : " ; // wypisz na ekranie float x ; cin>>x ; alaout<<" Twoj tajny numer to "<< x <<endl ; alaout. close () ; // zamknij plik return 0 ; 13 / 37

tekstowe binarne tekstowe odczyt z pliku tekstowego Nale»y 1 U»y klasy ifstream do obsªugi strumienia wej±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cin test26.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wej±ciowego i nazwij go fin ifstream fin (" ala. txt ") ; cout<<" Oto zawarto± pliku "<<" ala. txt "<<" :\ n" ; char ch ; while ( fin. get ( ch )) // odczytaj znak z pliku i cout<<ch ; // wypisz go na ekranie cout<<" Gotowe \n" ; fin. close () ; } 14 / 37

tekstowe binarne tekstowe odczyt z pliku tekstowego Nale»y 1 U»y klasy ifstream do obsªugi strumienia wej±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cin test26.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wej±ciowego i nazwij go fin ifstream fin (" ala. txt ") ; cout<<" Oto zawarto± pliku "<<" ala. txt "<<" :\ n" ; char ch ; while ( fin. get ( ch )) // odczytaj znak z pliku i cout<<ch ; // wypisz go na ekranie cout<<" Gotowe \n" ; fin. close () ; } 15 / 37

tekstowe binarne tekstowe odczyt z pliku tekstowego Nale»y 1 U»y klasy ifstream do obsªugi strumienia wej±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cin test26.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wej±ciowego i nazwij go fin ifstream fin (" ala. txt ") ; cout<<" Oto zawarto± pliku "<<" ala. txt "<<" :\ n" ; char ch ; while ( fin. get ( ch )) // odczytaj znak z pliku i cout<<ch ; // wypisz go na ekranie cout<<" Gotowe \n" ; fin. close () ; } 16 / 37

tekstowe binarne tekstowe odczyt z pliku tekstowego Nale»y 1 U»y klasy ifstream do obsªugi strumienia wej±ciowego (utworzy obiekt) 2 Skojarzy ten obiekt z konkretnym plikiem 3 U»ywa tego obiektu jak cin test26.cpp # include < iostream > # include < fstream > using namespace std ; int main () { // utwórz dla pliku obiekt strumienia wej±ciowego i nazwij go fin ifstream fin (" ala. txt ") ; cout<<" Oto zawarto± pliku "<<" ala. txt "<<" :\ n" ; char ch ; while ( fin. get ( ch )) // odczytaj znak z pliku i cout<<ch ; // wypisz go na ekranie cout<<" Gotowe \n" ; fin. close () ; } 17 / 37

tekstowe binarne Klasa ifstream sªu»y do obsªugi wej±cia plikowego, klasa ofstream do obsªugi wyj±cia plikowego. Klasa fstream umo»liwia jednoczesne operacje wej±cia i wyj±cia plikowego. Wszystkie znajduj si w pliku nagªówkowym fstream i wywodz si one z klas zdeniowanych w pliku nagªówkowym iostream, a wi c ich obiekty mog korzysta z metod tych klas. 18 / 37

tekstowe binarne Klasa ifstream sªu»y do obsªugi wej±cia plikowego, klasa ofstream do obsªugi wyj±cia plikowego. Klasa fstream umo»liwia jednoczesne operacje wej±cia i wyj±cia plikowego. Wszystkie znajduj si w pliku nagªówkowym fstream i wywodz si one z klas zdeniowanych w pliku nagªówkowym iostream, a wi c ich obiekty mog korzysta z metod tych klas. 19 / 37

tekstowe binarne Nast puj ce operacje s równowa»ne ofstream do zapisu ofstream plikout ; plikout. open (" plik. txt ") ; lub ofstream plikout (" plik. txt ") ; istream do odczytu ifstream plikin ; plikin. open (" plik. txt ") ; lub ifstream plikin (" plik. txt ") ; 20 / 37

tekstowe binarne Nast puj ce operacje s równowa»ne ofstream do zapisu ofstream plikout ; plikout. open (" plik. txt ") ; lub ofstream plikout (" plik. txt ") ; istream do odczytu ifstream plikin ; plikin. open (" plik. txt ") ; lub ifstream plikin (" plik. txt ") ; 21 / 37

Kontrola strumienia plikowego tekstowe binarne Nale»y zawsze sprawdzi, czy plik zostaª prawidªowo otwarty. Po otwarciu pliku, ustawiane s agi, które informuj o tym, czy plik zostaª prawidªowo otworzony, czy nie. Funkcje, które umo»liwiaj sprawdzenie tej agi: 1 bool good(); 2 bool is_open(); danein. open (" dane. txt ") ; if (! danein. is_open ()) { // plik nie zostaª otwarty } 22 / 37

Kontrola strumienia plikowego tekstowe binarne Nale»y zawsze sprawdzi, czy plik zostaª prawidªowo otwarty. Po otwarciu pliku, ustawiane s agi, które informuj o tym, czy plik zostaª prawidªowo otworzony, czy nie. Funkcje, które umo»liwiaj sprawdzenie tej agi: 1 bool good(); 2 bool is_open(); danein. open (" dane. txt ") ; if (! danein. is_open ()) { // plik nie zostaª otwarty } 23 / 37

Kontrola strumienia plikowego tekstowe binarne Nale»y zawsze sprawdzi, czy plik zostaª prawidªowo otwarty. Po otwarciu pliku, ustawiane s agi, które informuj o tym, czy plik zostaª prawidªowo otworzony, czy nie. Funkcje, które umo»liwiaj sprawdzenie tej agi: 1 bool good(); 2 bool is_open(); danein. open (" dane. txt ") ; if (! danein. is_open ()) { // plik nie zostaª otwarty } 24 / 37

Funkcja eof tekstowe binarne Funkcja eof sªu»y do sprawdzania, czy wska¹nik pliku znajduje si na ko«cu pliku. Denicja funkcji: bool eof(); Funkcja zwróci warto± true wtedy, gdy nie b dzie ju» w pliku wi cej danych do odczytu. 25 / 37

tekstowe binarne tekstowe odczyt wierszami z pliku tekstowego test27.cpp # include < iostream > # include < fstream > # include < iomanip > // uzyjemy setw # include < string > // uzyjemy typu string using namespace std ; int main ( ) { fstream plik ; plik. open ( " C :\\ cwiczenia \\ dane. txt " ) ; if ( plik. good ( ) ) { int nr_wiersza=0 ; string wiersz ; while (! plik. eof ( ) ) { getline (plik, wiersz ) ; nr_wiersza ++ ; cout<<setw ( 3 )<<nr_wiersza<<" : "<<wiersz<<endl ; } cout<<" Liczba wierszy : "<<nr_wiersza<<endl ; } else cout<<" ERROR - Brak dostepu do pliku!\n \n" ; return 0 ; } 26 / 37

Tryby otwarcia pliku tekstowe binarne Staªe zdeniowane w klasie ios_base. Metoda open() mo»e posiada jeszcze jeden argument, który okre±la tryb otwarcia pliku. Staªa Znaczenie ios_base::in Otwórz plik do odczytu ios_base::out Otwórz plik do zapisu ios_base::ate Po otwarciu pliku ustaw si na jego ko«cu. Dane mog by dopisane w dowolnym miejscu ios_base::app Dopisz dane na koniec pliku ios_base::trunc Zredukuj rozmiar pliku do zera, je±li istnieje ios_base::binary Plik binarny Mo»na je ª czy za pomoc operatora bitowej alternatywy. ofstream fileout (" dane. txt ", ios_base :: out ios_base :: app ) ; lub ofstream fileout ; fileout. open (" dane. txt ", ios_base :: out ios_base :: app ) ; lub ofstream outfile (" plik ", ios_base :: out ios_base :: app ) ; 27 / 37

Tryby otwarcia pliku tekstowe binarne Staªe zdeniowane w klasie ios_base. Metoda open() mo»e posiada jeszcze jeden argument, który okre±la tryb otwarcia pliku. Staªa Znaczenie ios_base::in Otwórz plik do odczytu ios_base::out Otwórz plik do zapisu ios_base::ate Po otwarciu pliku ustaw si na jego ko«cu. Dane mog by dopisane w dowolnym miejscu ios_base::app Dopisz dane na koniec pliku ios_base::trunc Zredukuj rozmiar pliku do zera, je±li istnieje ios_base::binary Plik binarny Mo»na je ª czy za pomoc operatora bitowej alternatywy. ofstream fileout (" dane. txt ", ios_base :: out ios_base :: app ) ; lub ofstream fileout ; fileout. open (" dane. txt ", ios_base :: out ios_base :: app ) ; lub ofstream outfile (" plik ", ios_base :: out ios_base :: app ) ; 28 / 37

Tryby otwarcia pliku tekstowe binarne dla klasy ofstream domy±ln warto±ci jest: ios_base :: out ios_base :: trunc a dla klasy iostream : ios_base :: in 29 / 37

Tryby otwarcia pliku tekstowe binarne dla klasy ofstream domy±ln warto±ci jest: ios_base :: out ios_base :: trunc a dla klasy iostream : ios_base :: in 30 / 37

binarne tekstowe binarne Dane zawarte w pliku binarnym zawsze traktowane s jak ci g bajtów, bez wzgl du na rodzaj zapisanej w pliku informacji. Plik binarny otwieramy z atrybutem ios_base::binary. Do zapisu danych u»ywamy metody write() a do odczytu metody read(). 31 / 37

binarne tekstowe binarne Dane zawarte w pliku binarnym zawsze traktowane s jak ci g bajtów, bez wzgl du na rodzaj zapisanej w pliku informacji. Plik binarny otwieramy z atrybutem ios_base::binary. Do zapisu danych u»ywamy metody write() a do odczytu metody read(). 32 / 37

binarne tekstowe binarne write ( const char * bufor, int ilosc ) ; read ( const char * bufor, int ilosc ) ; Funkcje pobieraj dwa argumenty: adres pami ci, gdzie znajduje si warto± przeznaczona do zapisu (jest okre±lone miejsce w pami ci), argument ten musi by zrzutowany na wska¹nik na char rozmiar danych w bajtach odpowiadaj cy rozmiarowi zapisywanej warto±ci). 33 / 37

binarne tekstowe binarne write ( const char * bufor, int ilosc ) ; read ( const char * bufor, int ilosc ) ; Funkcje pobieraj dwa argumenty: adres pami ci, gdzie znajduje si warto± przeznaczona do zapisu (jest okre±lone miejsce w pami ci), argument ten musi by zrzutowany na wska¹nik na char rozmiar danych w bajtach odpowiadaj cy rozmiarowi zapisywanej warto±ci). 34 / 37

binarne zapis tekstowe binarne test28.cpp # include < iostream > # include < fstream > using namespace std ; int main () { ofstream exampleout (" example. bin ", ios :: binary ) ; int liczba = 30 ; exampleout. write (( char *)(& liczba ), sizeof ( liczba )) ; float x=7. 76 ; for ( int i=1 ; i <10 ; i++ ) { x=i*x ; exampleout. write (( char *)(&x), sizeof (x)) ; } exampleout. close () ; return 0 ; } 35 / 37

binarne odczyt tekstowe binarne test29.cpp # include < iostream > # include < fstream > using namespace std ; int main () { int liczba ; float x ; ifstream examplein (" example. bin ", ios :: binary ) ; examplein. read (( char *)(& liczba ), sizeof ( liczba )) ; cout<<liczba<<endl ; for ( int i=1 ; i <10 ; i++ ) { examplein. read (( char *)(&x), sizeof (x)) ; cout<<x<<endl ; } cout<<" koniec "<<endl ; return 0 ; } 36 / 37

tekstowe binarne Dzi kuj za uwag!!! 37 / 37