Przestrzenie nazw, strumienie. Przestrzenie nazw Przestrzeń nazw – co to takiego? Przestrzeń nazw – co to takiego?namespace Kiedy potrzebujemy przestrzeni.

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 9 ( ) Szablony.
C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Język C/C++ Funkcje.
C++ Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego
C++ wykład 13,14,15 (16/23/ ) STL.
Programowanie wizualne PW – LAB6 Wojciech Pieprzyca.
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Standardowa biblioteka języka C++
Programowanie obiektowe PO PO - LAB 6 Wojciech Pieprzyca.
Wzorce.
Wprowadzenie.
Kompilator: a) gcc [cc, g++]
Standard Template Library
OOPC++ - dziedziczenie1 Uwagi VS2003 Wykłady (nie na rainbow!)
Standard Template Library
DZIEDZICZENIE · klasy bazowe i klasy pochodne WyświetlAutora( ) Autor
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
C++ wykład 2 ( ) Klasy i obiekty.
Programowanie w C Wykład 3
Język ANSI C Operacje we/wy
Programowanie obiektowe W2

Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy informatyki 2013/2014
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Programowanie obiektowe III rok EiT
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Podstawy informatyki 2013/2014
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
Kurs języka C++ – wykład 13 ( )
Programowanie strukturalne i obiektowe C++
K URS JĘZYKA C++ – WYKŁAD 10 ( ) Szablony.
Programowanie strukturalne i obiektowe C++
Podstawy programowania II Wykład 3: Obsługa plików w stdio.h.
Kurs języka C++ – wykład 4 ( )
Programowanie strukturalne i obiektowe C++ Powtórzenie wiadomości z C++ Robert Nowak.
Pliki tekstowe – odczyt i zapis Zajęcia 11. Zapis do pliku tekstowego Prosty program pokazujący sposób zapisu do pliku tekstowego: // writing on a text.
Klasy String i Vector Zajęcia 9. Klasa String Atutem języka C++ jest biblioteka standardowych szablonów STL (Standard Template Library), która udostępnia.
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Wykład 8 Polimorfizm 1.Funkcje polimorficzne 2.Czyste funkcje wirtualne i klasy abstrakcyjne PO8-1 / 38.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
STOS. STL (ang. Standard Template Library) jest to biblioteka zawierająca algorytmy, pojemniki, iteratory oraz inne konstrukcje w formie szablonów, gotowe.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Strumienie w języku Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji:
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Piotr Kawałek , Mateusz Śliwowski
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
KURS JĘZYKA C++ – WYKŁAD 11 ( )
Programowanie Obiektowe – Wykład 2
Podstawy informatyki Operacje we/wy
Operacje na plikach w C++
Programowanie obiektowe – zastosowanie języka Java SE
Wstęp do programowania
Operacje na plikach w C++
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Operacje we/wy
Zapis prezentacji:

Przestrzenie nazw, strumienie

Przestrzenie nazw Przestrzeń nazw – co to takiego? Przestrzeń nazw – co to takiego?namespace Kiedy potrzebujemy przestrzeni nazw? Kiedy potrzebujemy przestrzeni nazw?

Przestrzenie nazw - używanie namespace moja { void printf(int); class plik; void fprintf(const plik&, int); }moja::printf(44); moja::plik plikwe; fprintf(plikwe, );// wystarczy, że jeden z argumentów // należy do przestrzeni moja, aby funkcja // fprintf była najpierw szukana w przestrzni moja // (reguła wyszukiwania Koeniga)

Przestrzenie nazw - używanie Przestrzenie nazw można dowolnie rozszerzać i łączyć Przestrzenie nazw można dowolnie rozszerzać i łączyć w jednym pliku w jednym pliku w kilku plikach w kilku plikach Nazwę (lub wszystkie nazwy) z przestrzeni nazw można przenieść na globalny (lokalny) poziom widoczności Nazwę (lub wszystkie nazwy) z przestrzeni nazw można przenieść na globalny (lokalny) poziom widoczności using moja::plik; using moja::plik; using namespace moja; using namespace moja; Nie używaj using w plikach nagłówkowych! Nie używaj using w plikach nagłówkowych! dlaczego? dlaczego? używaj kwalifikacji nazwa_namespace::nazwa_z_namespace! używaj kwalifikacji nazwa_namespace::nazwa_z_namespace!

Przestrzenie nazw – std:: W przestrzeni nazw std:: zdefiniowana jest Biblioteka Standardowa C++ W przestrzeni nazw std:: zdefiniowana jest Biblioteka Standardowa C++ klasy strumieniowe klasy strumieniowe klasy łańcuchowe klasy łańcuchowe STL STL Dawniej używano nagłówków (obsolete): „*.h”, „*.hpp”, „*.hxx” Dawniej używano nagłówków (obsolete): „*.h”, „*.hpp”, „*.hxx” Znacząco rozszerzona w standardzie C++11 (głównie część STL) Znacząco rozszerzona w standardzie C++11 (głównie część STL) Rozszerzenia języka i bibliotek C++11 nie są jeszcze w pełni wspierane przez kompilatory; wykład o C++11 na przedmiocie MiNWO poświęcony będzie nowemu standardowi C++ Rozszerzenia języka i bibliotek C++11 nie są jeszcze w pełni wspierane przez kompilatory; wykład o C++11 na przedmiocie MiNWO poświęcony będzie nowemu standardowi C++

Książki o STL i bibliotece standardowej C++ Nicolai M. Josuttis: C++ Standard Library: A tutorial and Reference, 1st, Pearson 1999, Nicolai M. Josuttis: C++ Standard Library: A tutorial and Reference, 1st, Pearson 1999, przykłady: (Polska wersja: Nicolai M. Josuttis: C++ Biblioteka standardowa Podręcznik Programisty, Helion 2003, przykłady: ftp://ftp.helion.pl/przyklady/cpbspp.zip) (Polska wersja: Nicolai M. Josuttis: C++ Biblioteka standardowa Podręcznik Programisty, Helion 2003, przykłady: ftp://ftp.helion.pl/przyklady/cpbspp.zip) Nicolai M. Josuttis: C++ Standard Library: A tutorial and Reference, 2nd, Addison Wesley Longman 2012, (uwzględnia standard C++11) Nicolai M. Josuttis: C++ Standard Library: A tutorial and Reference, 2nd, Addison Wesley Longman 2012, (uwzględnia standard C++11) Grębosz J.: Pasja C++, RM, W-wa Grębosz J.: Pasja C++, RM, W-wa Inne (wspomniane na pierwszym wykładzie o C++, w tym ANSI/ISO C++ standard) Inne (wspomniane na pierwszym wykładzie o C++, w tym ANSI/ISO C++ standard)

Standardowe wejście/wyjście C++ Biblioteka IOStream (iostream) Biblioteka IOStream (iostream) najstarsza część biblioteki standardowej najstarsza część biblioteki standardowej opracowana przez AT&T opracowana przez AT&T obsługa lokalizacji obsługa lokalizacji obsługa typów obsługa typów char * (zgodność z wczesnymi implementacjami) char * (zgodność z wczesnymi implementacjami) string string iostream to biblioteka wzorców z obsługą sytuacji wyjątkowych iostream to biblioteka wzorców z obsługą sytuacji wyjątkowych

Biblioteka IOStream – podstawy Klasy Klasy strumień wejściowy istream (wywiedziony ze wzorca: basic_istream ) strumień wejściowy istream (wywiedziony ze wzorca: basic_istream ) strumień wyjściowy ostream (wywiedziony ze wzorca: basic_ostream ) strumień wyjściowy ostream (wywiedziony ze wzorca: basic_ostream )

Biblioteka IOStream – podstawy Obiekty (nagłówek: Obiekty (nagłówek: istream cin; //stdin, buforowany istream cin; //stdin, buforowany ostream cout; //stdout, buforowany ostream cout; //stdout, buforowany ostream cerr; //stderr, niebuforowany ostream cerr; //stderr, niebuforowany //skojarzony z konsolą ostream clog; //bez odp. w C, buforowany ostream clog; //bez odp. w C, buforowany //skojarzony z konsolą

Biblioteka IOStream – podstawy Operatory > Operatory > przeciążone dla typów podstawowych, w tym char *, void *, bool, przeciążone dla typów podstawowych, w tym char *, void *, bool, można przeciążać dla własnych klas. można przeciążać dla własnych klas. istream is; ostream os; int i; double d; os >i; os >d; os >i>>d; cout >i>>d; cout<< "\ni wynosi " << i << " a d to " << d << " \n";

Biblioteka IOStream – podstawy Manipulatory Manipulatory to są obiekty zdefiniowane aby modyfikować domyślne zachowanie strumienia (np. formatowanie), wyprowadzić znak końca wiersza itp. to są obiekty zdefiniowane aby modyfikować domyślne zachowanie strumienia (np. formatowanie), wyprowadzić znak końca wiersza itp. programista może definiować własne manipulatory programista może definiować własne manipulatory endl //koniec wiersza i wyczyszczenie (flush()) bufora strumienia cout<< "\ni wynosi " << i << " a d to " << d << endl; ends// "\0"; ws// dla istream pobierz (pomiń) białe znaki flush dec, hex, oct

Biblioteka IOStream – szczegóły ios_base basic_streambuf<> basic_streambuf<>basic_ios<> virtual virtual basic_istream<> basic_ostream<> basic_iostream<> basic_iostream<>

Biblioteka IOStream – szczegóły ios_base wspólny interfejs klas strumieni w zakresie niezależnym od typu elementów strumienia wspólny interfejs klas strumieni w zakresie niezależnym od typu elementów strumienia definicja stanu strumienia definicja stanu strumienia format przetwarzanych danyc format przetwarzanych danyc

Biblioteka IOStream – szczegóły basic_ios<> wspólny interfejs klas strumieni w zakresie zależnym od typu elementów strumienia wspólny interfejs klas strumieni w zakresie zależnym od typu elementów strumienia definicja bufora danych strumienia (klasa pochodna wzorca basic_streambuf<> dla konkretnego typu elementów strumienia, wraz z definicjami operacji faktycznego odczytu/zapisu danych) definicja bufora danych strumienia (klasa pochodna wzorca basic_streambuf<> dla konkretnego typu elementów strumienia, wraz z definicjami operacji faktycznego odczytu/zapisu danych)

Biblioteka IOStream – szczegóły basic_istream<>basic_ostream<> wzorce obiektów odpowiednio tylko do odczytu/zapisu wzorce obiektów odpowiednio tylko do odczytu/zapisu dziedziczą wirtualnie wzorzec basic_ios<> dziedziczą wirtualnie wzorzec basic_ios<> dla argumentu char wywiedzione są klasy odpowiednio istream i ostream dla argumentu char wywiedzione są klasy odpowiednio istream i ostream nagłówki odpowiednio i nagłówki odpowiednio i

Biblioteka IOStream – szczegóły basic_iostream<> wzorce obiektów do odczytu i zapisu wzorce obiektów do odczytu i zapisu nagłówek nagłówek

Biblioteka IOStream – szczegóły rezultat operacji strumieniowych rezultat operacji strumieniowych stan strumienia (widoczny w zakresie klasy ios_base, stałe typu iostate) stan strumienia (widoczny w zakresie klasy ios_base, stałe typu iostate) goodbit// poprawny wynik operacji goodbit// poprawny wynik operacji // poniższe bity wyzerowane // poniższe bity wyzerowane eofbit// napotkano koniec (znak końca) pliku eofbit// napotkano koniec (znak końca) pliku failbit// operacja zakończona niepowodzeniem failbit// operacja zakończona niepowodzeniem // kolejne też będą się kończyć niepow. // kolejne też będą się kończyć niepow. // trzeba wyzerować failbit // trzeba wyzerować failbit badbit// niepowodzenie i uszkodzenie strumienia badbit// niepowodzenie i uszkodzenie strumienia

Biblioteka IOStream – szczegóły rezultat operacji strumieniowych - metody rezultat operacji strumieniowych - metody bool good()// poprawny wynik operacji bool good()// poprawny wynik operacji bool eof() // napotkano koniec (znak końca) pliku bool eof() // napotkano koniec (znak końca) pliku bool fail() // operacja zakończona niepowodzeniem bool fail() // operacja zakończona niepowodzeniem bool bad() // niepowodzenie i uszkodzenie strumienia bool bad() // niepowodzenie i uszkodzenie strumienia rdstate()// odczytaj stan strumienia rdstate()// odczytaj stan strumienia clear()// ustaw na stan goodbit clear()// ustaw na stan goodbit clear(state)// ustaw na stan state clear(state)// ustaw na stan state setstate(state)// ustaw znaczniki state, nie rusz setstate(state)// ustaw znaczniki state, nie rusz // pozostałych // pozostałych

Biblioteka IOStream – szczegóły rezultat operacji strumieniowych – operatory konwersji rezultat operacji strumieniowych – operatory konwersji operator void* ()// odpowiednik !fail() operator void* ()// odpowiednik !fail() if (cin>>x) // lub: while(cin>>x) { // x odczytane poprawnie } operator ! () // odpowiednik fail() operator ! () // odpowiednik fail() if ( !!(cin>>x)) // lub: while( !!(cin>>x)) { // x odczytane poprawnie }

Biblioteka IOStream – szczegóły rezultat operacji strumieniowych – generowanie wyjątków rezultat operacji strumieniowych – generowanie wyjątków definicja błędnych sytuacji powodujących zgłoszenie wyjątku (metoda klasy strumienia): definicja błędnych sytuacji powodujących zgłoszenie wyjątku (metoda klasy strumienia):exceptions(flags) sprawdzenie błędnych sytuacji powodujących zgłoszenie wyjątku (metoda klasy strumienia): sprawdzenie błędnych sytuacji powodujących zgłoszenie wyjątku (metoda klasy strumienia):exceptions() jeżeli zwrócona wartość ==goodbit, to wyjątki nie są generowane

Biblioteka IOStream – szczegóły i/o formatowane a nieformatowane i/o formatowane a nieformatowane operatory > domyślnie obsługują i/o formatowane (określona precyzja, pomijanie białych znaków itp.) operatory > domyślnie obsługują i/o formatowane (określona precyzja, pomijanie białych znaków itp.) metody get*/put*/read*/write* i in. obsługują i/o nieformatowane metody get*/put*/read*/write* i in. obsługują i/o nieformatowane

Biblioteka IOStream – szczegóły i/o formatowane i/o formatowane metody dla znaczników formatu (ios::fmtflags) metody dla znaczników formatu (ios::fmtflags) setf(flags);// ustaw znacznik(i) flags setf(flags);// ustaw znacznik(i) flags setiosflags(flags);// odpowiednik setf(flags); setiosflags(flags);// odpowiednik setf(flags); setf(flags, mask);// ustaw znacznik(i) flags w grupie mask setf(flags, mask);// ustaw znacznik(i) flags w grupie mask resetiosflags(mask);// odpowiednik setiosflags(0, mask); resetiosflags(mask);// odpowiednik setiosflags(0, mask); unsetf(flags);// wyczyść znacznik(i) flags unsetf(flags);// wyczyść znacznik(i) flags flags();// zwróć aktualne znacznik(i) flags flags();// zwróć aktualne znacznik(i) flags flags(flags);// ustaw znaczniki flags, wyzeruj pozosałe flags(flags);// ustaw znaczniki flags, wyzeruj pozosałe copyfmt(stream)// kopiuj znaczniki ze strumienia stream copyfmt(stream)// kopiuj znaczniki ze strumienia stream

Biblioteka IOStream – szczegóły i/o formatowane - i/o formatowane - znaczniki i maski znaczniki i maski boolalpha// znacznik: typ bool liczbowy (0/1) czy opisowy boolalpha// znacznik: typ bool liczbowy (0/1) czy opisowy // true/false // true/false // zdefiniowano również manipulatory boolalpha i noboolalpha adjustfield// maska: wyrównanie (left, right, internal) adjustfield// maska: wyrównanie (left, right, internal) left// znacznik: wyrównanie do lewej left// znacznik: wyrównanie do lewej right// znacznik: wyrównanie do prawej right// znacznik: wyrównanie do prawej internal// znacznik: wyrównanie znaku liczby do lewej internal// znacznik: wyrównanie znaku liczby do lewej // reszta wartości do prawej // reszta wartości do prawej // zdefiniowano również manipulatory left, right i internal

Biblioteka IOStream – szczegóły i/o formatowane - i/o formatowane - znaczniki i maski znaczniki i maski showpos// poprzedź liczby dodatnie znakiem „+” showpos// poprzedź liczby dodatnie znakiem „+” // zdefiniowano również manipulatory showpos i noshowpos uppercase// liczby szcesnastkowe pisz dużymi literami uppercase// liczby szcesnastkowe pisz dużymi literami // zdefiniowano również manipulatory uppercase i nouppercase basefield// maska: podstawa systemu liczbowego basefield// maska: podstawa systemu liczbowego dec, hex oct// znaczniki systemu liczbowego dec, hex oct// znaczniki systemu liczbowego (pusty)// znacznik: zapisuj dziesiętnie, odczytuj zgodnie (pusty)// znacznik: zapisuj dziesiętnie, odczytuj zgodnie // z prefiksem liczby 0x – hex, 0 – oct, else: dec // z prefiksem liczby 0x – hex, 0 – oct, else: dec // zdefiniowano również manipulatory dec hex i oct

Biblioteka IOStream – szczegóły i/o formatowane - i/o formatowane - znaczniki i maski znaczniki i maski showbase// wyprowadź prefiks liczby dla systemu liczbowego showbase// wyprowadź prefiks liczby dla systemu liczbowego // zdefiniowano również manipulatory showbase i noshowbase floatfield// maska: format zmiennego przecinka floatfield// maska: format zmiennego przecinka fixed// ułamek dziesiętny fixed// ułamek dziesiętny scientific// z wykładnikiem scientific// z wykładnikiem (pusty)// wybierz sam najlepszy (pusty)// wybierz sam najlepszy // zdefiniowano również manipulatory fixed i scientific showpoint// dla liczby zmiennoprzecinkowej zawsze showpoint// dla liczby zmiennoprzecinkowej zawsze // wyprowaź kropkę // wyprowaź kropkę // zdefiniowano również manipulatory showpoint i noshowpoint

Biblioteka IOStream – szczegóły i/o formatowane i/o formatowane precision()// zwróć dokładność dla liczb precision()// zwróć dokładność dla liczb // zmiennorzecinkowych, // domyślnie 6 miejsc po przecinku precision(p)// ustaw dokładność dla liczb precision(p)// ustaw dokładność dla liczb // zmiennorzecinkowych // jest również manipulator setprecision(w) // jest również manipulator setprecision(w)

Biblioteka IOStream – szczegóły i/o formatowane - i/o formatowane - znaczniki znaczniki skipws// pomijaj białe znaki skipws// pomijaj białe znaki // zdefiniowano również manipulatory skipws i noskipws unitbuf// opróżnij bufor wyjściowy unitbuf// opróżnij bufor wyjściowy // po każdym << // po każdym << // zdefiniowano również manipulatory unitbuf i nounitbuf

Biblioteka IOStream – szczegóły i/o formatowane i/o formatowane width()// zwróć szerokość pola (liczba znaków) width()// zwróć szerokość pola (liczba znaków) // znaczy: nie mniej niż // znaczy: nie mniej niż width(w)// ustaw szerokość pola (liczba znaków) width(w)// ustaw szerokość pola (liczba znaków) // znaczy: nie mniej niż // znaczy: nie mniej niż // jest również manipulator setw(w) char buf[80]; cin >> setw(sizeof(buffer)) >> buffer; fill() // zwróć znak dopelniajacy pole fill() // zwróć znak dopelniajacy pole fill(c) // ustaw znak dopelniajacy pole fill(c) // ustaw znak dopelniajacy pole // jest również manipulator setfill(c)

Biblioteka IOStream – szczegóły i/o formatowane i/o formatowane metody dla lokalizacji programów, znaków międzynarodowych, itp. metody dla lokalizacji programów, znaków międzynarodowych, itp. są … opisane w dokumentacji ;-) są … opisane w dokumentacji ;-)

Biblioteka IOStream – szczegóły i/o nieformatowane i/o nieformatowane metoda get metoda get int get();// odczytaj jeden znak, lub EOF int get();// odczytaj jeden znak, lub EOF // odpowiednik getchar()/getc() // odpowiednik getchar()/getc() istream& get(char &c);// nie ma EOF, jest stan str. istream& get(char &c);// nie ma EOF, jest stan str. istream& get(char *pc, streamsize cnt) istream& get(char *pc, streamsize cnt) istream& get(char *pc, streamsize cnt, char delim) istream& get(char *pc, streamsize cnt, char delim) // wczytaj do bufora pc, zatrzymaj się po przeczytaniu // wczytaj do bufora pc, zatrzymaj się po przeczytaniu // cnt-1 znaków, lub napotkaniu znaku delim // cnt-1 znaków, lub napotkaniu znaku delim // nie odczytuj delim, dopisz do bufora ‘\0’ // nie odczytuj delim, dopisz do bufora ‘\0’ istream& ignore(streamsize cnt, char delim) istream& ignore(streamsize cnt, char delim) // kilka wariantów, pobierz ale nie zapisuj // kilka wariantów, pobierz ale nie zapisuj

Biblioteka IOStream – szczegóły i/o nieformatowane i/o nieformatowane metoda getline metoda getline istream& getline(char *pc, streamsize cnt) istream& getline(char *pc, streamsize cnt) istream& getline(char *pc, streamsize cnt, char delim) istream& getline(char *pc, streamsize cnt, char delim) // wczytaj do bufora pc, zatrzymaj się po przeczytaniu // wczytaj do bufora pc, zatrzymaj się po przeczytaniu // cnt-1 znaków, lub napotkaniu odpowiednio // cnt-1 znaków, lub napotkaniu odpowiednio // konca wiersza lub znaku delim // konca wiersza lub znaku delim // delim jest odczytywany ze strumienia // delim jest odczytywany ze strumienia // jeżeli odczytano mniej niż cnt znaków to ustaw failbit

Biblioteka IOStream – szczegóły i/o nieformatowane i/o nieformatowane metody read i readsome – wybrane aspekty metody read i readsome – wybrane aspekty istream& read(char *pc, streamsize cnt) istream& read(char *pc, streamsize cnt) // odczytaj cnt znaków // odczytaj cnt znaków streamsize readsome(char *pc, streamsize cnt) streamsize readsome(char *pc, streamsize cnt) // zwróć liczbę przeczytanych znaków, // zwróć liczbę przeczytanych znaków, // odczytaj nie więcej niż cnt-1 znaków // odczytaj nie więcej niż cnt-1 znaków // pobierz tylko te znaki, które już są w buforze (niedestrukcyjne) // pobierz tylko te znaki, które już są w buforze (niedestrukcyjne)

Biblioteka IOStream – szczegóły i/o nieformatowane i/o nieformatowane int peek(char *pc, streamsize cnt) int peek(char *pc, streamsize cnt) // odczytaj następny znak, ale nie pobieraj go z bufora // odczytaj następny znak, ale nie pobieraj go z bufora istream& unget() istream& unget() // zwróć ostatnio odczytany znak // zwróć ostatnio odczytany znak // zależnie od implementacji zadziała 1 lub wiecej // zależnie od implementacji zadziała 1 lub wiecej // razy pod rząd // jeżeli nie powiedzie się to ustaw badbit istream& putback(char c) istream& putback(char c) // j.w., ale jeżeli c nie jest ostatnio pobranym znakiem // j.w., ale jeżeli c nie jest ostatnio pobranym znakiem // to ustaw badbit

Biblioteka IOStream – szczegóły i/o nieformatowane i/o nieformatowane ostream& put(char c) ostream& put(char c) // zapisz c do strumienia // zapisz c do strumienia ostream& write(const char *pc, streamsize cnt) ostream& write(const char *pc, streamsize cnt) // zapisz cnt znakow od adresu pc do strumienia // zapisz cnt znakow od adresu pc do strumienia // nie dopisuj (automatycznie) \0 // nie dopisuj (automatycznie) \0 ostream& flush() ostream& flush()

Biblioteka IOStream – podstawy Klasy strumieni plikowych Klasy strumieni plikowych strumień wejściowy ifstream (wywiedziony ze wzorca: basic_ifstream /pochodny basic_istream /) strumień wejściowy ifstream (wywiedziony ze wzorca: basic_ifstream /pochodny basic_istream /) strumień wyjściowy ofstream (wywiedziony ze wzorca: basic_ofstream /pochodny basic_ostream /) strumień wyjściowy ofstream (wywiedziony ze wzorca: basic_ofstream /pochodny basic_ostream /) strumień we/wy fstream (wywiedziony ze wzorca: basic_fstream /pochodny basic_iostream /) strumień we/wy fstream (wywiedziony ze wzorca: basic_fstream /pochodny basic_iostream /)

Biblioteka IOStream – podstawy int i; ifstream plikwe(„plik.txt”); if (!plikwe) cout<<„nie otworzylem pliku”; cout<<„nie otworzylem pliku”;else plikwe>>i; plikwe>>i;

Biblioteka IOStream – podstawy Znaczniki dla plików (widoczne w zakresie std::ios) Znaczniki dla plików (widoczne w zakresie std::ios) argumenty konstruktora: fstream(nazwa, znaczniki=def) argumenty konstruktora: fstream(nazwa, znaczniki=def) in// znacznik: strumień wejściowy domyślny dla ifstream in// znacznik: strumień wejściowy domyślny dla ifstream out// znacznik: strumień wyjściowy domyślny dla ofstream out// znacznik: strumień wyjściowy domyślny dla ofstream app// z.: dla pliku wyjściowego ustaw się na końcu pliku app// z.: dla pliku wyjściowego ustaw się na końcu pliku ate// z.: ustaw się na końcu pliku ate// z.: ustaw się na końcu pliku out// z.: usuń zawartość pliku (jeżeli niepusty) out// z.: usuń zawartość pliku (jeżeli niepusty) binary// z.: tryb binarny (nie tłumacz CR LF) binary// z.: tryb binarny (nie tłumacz CR LF) ifstream ibin(„data.bin”, std::ios::in | std::ios::binary);

Biblioteka IOStream – podstawy Metody dla strumieni plikowych Metody dla strumieni plikowych open// ( nazwa_pliku [, znaczniki] ) open// ( nazwa_pliku [, znaczniki] ) close// () close// () is_open// czy skojarzony z otwartym plikiem? is_open// czy skojarzony z otwartym plikiem? tellg/tellp// pobierz aktualną pozycją odczytu/zapisu tellg/tellp// pobierz aktualną pozycją odczytu/zapisu seekg/seekp// seek dla odczytu/zapisu, seekg/seekp// seek dla odczytu/zapisu, // przeciążone wersje: poz. względna/bezwzględna // przeciążone wersje: poz. względna/bezwzględna ifstream ibin(„data.bin”, std::ios::in | std::ios::binary);

Biblioteka IOStream – szczegóły Klasy strumieni plikowych Klasy strumieni plikowych szczegóły są opisane w dokumentacji … ;-) szczegóły są opisane w dokumentacji … ;-)

Biblioteka IOStream – podstawy Klasy strumieni pamięciowych (łańcuchowych) Klasy strumieni pamięciowych (łańcuchowych) strumień wejściowy istringstream (wywiedziony ze wzorca: basic_istringstream /pochodny basic_istream /) strumień wejściowy istringstream (wywiedziony ze wzorca: basic_istringstream /pochodny basic_istream /) strumień wyjściowy ostringstream (wywiedziony ze wzorca: basic_ostringstream /pochodny basic_ostream /) strumień wyjściowy ostringstream (wywiedziony ze wzorca: basic_ostringstream /pochodny basic_ostream /) strumień we/wy stringstream (wywiedziony ze wzorca: basic_stringstream /pochodny basic_iostream /) strumień we/wy stringstream (wywiedziony ze wzorca: basic_stringstream /pochodny basic_iostream /)

Biblioteka IOStream – szczegóły Klasy strumieni pamięciowych Klasy strumieni pamięciowych szczegóły są opisane w dokumentacji … ;-) szczegóły są opisane w dokumentacji … ;-)