Podrozdziały


16.1 Strumienie

Operacje we/wy realizuje się w C++ za pomocą strumieni. Strumień możemy wyobrażać sobie jako strumień informacji, w postaci bajtów, płynący od źródła do ujścia. Zachodzą przy tym dwie możliwości:

Do reprezentowania strumieni i obsługi operacji na nich zdefiniowane są specjalne klasy wyposażone w pola i metody. Struktura tych klas jest skomplikowana, ale na szczęście nie musimy jej dokładnie znać, aby z obiektów tych klas i ich składowych korzystać.

Ogólny, uproszczony schemat klas przedstawiony jest na rysunku (klasy istrstream, ostrstreamstrstream, omówione poniżej, nie należą do tej hierarchii):

Image io

Podstawową dla nas klasą jest klasa ios (sama wyprowadzona z ios_base); z niej wyprowadzone są (dziedziczą) klasy:

Klasa iostream, z nagłówka o tej samej nazwie, dziedziczy zarówno z  istream, jak i z  ostream, zatem dołączając iostream zapewniamy funkcjonalność obu. Podobnie, dołączając fstream zapewniamy dostęp do klas ifstreamofstream, a dołączając sstream do istringstreamostringstream.

Generalnie zatem:


16.1.1 Strumienie predefiniowane

Po dołączeniu pliku nagłówkowego iostream mamy do dyspozycji cztery już otwarte strumienie: jeden wejściowy —  cin, i trzy wyjściowe —  cout, cerrclog. Nazwy te są w rzeczywistości nazwami obiektów reprezentujących strumienie; dlatego, jak się przekonamy, można na ich rzecz wywoływać metody. Predefiniowane strumienie to:

Ze wszystkich tych strumieni można korzystać w znany nam już sposób z użyciem operatorów '<<' (wyjście, czyli pisanie) lub '>>' (wejście, czyli czytanie). Można używać też metod, które będą opisane w dalszym ciągu tego rozdziału.

T.R. Werner, 21 lutego 2016; 20:17