8.1. Základní pojmy I/O

Časová náročnost
Časová náročnost: 6 minut

I/O systém jazyka C++ pracuje s proudy (stream). Proud dat je logické zařízení, které slouží ke vstupu, nebo výstupu dat. Proudy dat se chovají stejným způsobem, ikdyž se liší fyzické zařízení na které jsou připojeny. Například stejná funkce kterou využijeme pro výpis na obrazovku, může být využita pro výpis do souboru.

Při spuštění programu v jazyce C++ se automaticky otevírají tyto předdefinované proudy:

upozornění
  1. Cin - standardní vstup z klávesnice
  2. Cout - standardní výstup na obrazovku
  3. Cerr - standardní chybový výstup na obrazovku
  4. Clog - bufferovaná verze Cerr s výstupem na obrazovku

Standardně jsou proudy dat užívány ke komunikaci s obrazovkou. Jelikož však prostředí C++ podporuje přesměrování, mohou být tyto datové proudy přesměrovány na jiná zařízení.

Jazyk C++ poskytuje pro svůj I/O systém informace v hlavičkovém souboru iostream.h. V tomto souboru je definována hierarchie tříd, která podporuje I/O operace. Třídy I/O začínají systémem šablonových tříd. Šablonové třídy definují druh tříd bez plné specifikace dat s nimiž mohou operovat. Jakmile jsou šablony tříd definovány mohou se z nich vytvářet standardní případy.

I/O systém jazyka C++ je postaven na dvou rozdílných hierarchiích šablonových tříd:
  1. basic_streambuf - zajišťující základní I/O operace nízké úrovně a vytváří základ celého I/O systému
  2. basic_ios - tato vysokoúrovňová třída I/O zajišťuje formátování, kontrolu chyb a stavové informace související s proudy dat.

Třída basic_ios slouží jako základní třída pro odvozené třídy basic_istream, basic_ostream a basic_iostream. Tyto třídy slouží k vytváření proudů dat pro I/O.