ios_base
Třída
Třída popisuje funkce úložiště a členů společné pro vstupní i výstupní datové proudy, které nezávisí na parametrech šablony. (Šablona basic_ios
třídy popisuje, co je běžné a závisí na parametrech šablony.)
Objekt třídy ios_base
ukládá informace o formátování, které se skládá z:
Formátovat příznaky v objektu typu
fmtflags
.Maska výjimky v objektu typu
iostate
.Šířka pole v objektu typu
int
.Přesnost zobrazení v objektu typu
int
.Objekt
locale
v objektu typulocale
.Dvě rozšiřitelná pole s prvky typu
long
avoid
ukazatele.
Objekt třídy ios_base
také ukládá informace o stavu datového proudu, v objektu typu iostate
a zásobník zpětného volání.
Členové
Konstruktory
Název | Popis |
---|---|
ios_base |
Vytváří objekty ios_base . |
Typedefs
Název | Popis |
---|---|
event_callback |
Popisuje funkci předanou funkci register_call . |
fmtflags |
Konstanty, které určují vzhled výstupu. |
iostate |
Definuje konstanty popisující stav datového proudu. |
openmode |
Popisuje, jak pracovat s datovým proudem. |
seekdir |
Určuje výchozí bod pro operace posunu. |
Výčty
Název | Popis |
---|---|
event |
Určuje typy událostí. |
Konstanty
Název | Popis |
---|---|
adjustfield |
Bitová maska definovaná jako internal right | left | . |
app |
Určuje hledání na konec datového proudu před každým vložením. |
ate |
Určuje hledání na konec datového proudu při prvním vytvoření jeho řídicího objektu. |
badbit |
Zaznamenává ztrátu integrity vyrovnávací paměti datového proudu. |
basefield |
Bitová maska definovaná jako dec oct | hex | . |
beg |
Určuje hledání vzhledem k začátku sekvence. |
binary |
Určuje, že soubor by se měl číst jako binární datový proud, a ne jako textový datový proud. |
boolalpha |
Určuje vložení nebo extrakci objektů typu bool jako názvů (například true a false ) místo číselných hodnot. |
cur |
Určuje hledání vzhledem k aktuální pozici v posloupnosti. |
dec |
Určuje vložení nebo extrakci celočíselné hodnoty v desítkovém formátu. |
end |
Určuje hledání vzhledem ke konci sekvence. |
eofbit |
Zaznamenává konec souboru při extrahování ze streamu. |
failbit |
Zaznamenává selhání extrakce platného pole z datového proudu. |
fixed |
Určuje vložení hodnot s plovoucí desetinnou čárkou ve formátu s pevnou čárkou (bez exponentního pole). |
floatfield |
Bitová maska definovaná jako fixed | scientific |
goodbit |
Všechny bity stavu jsou jasné. |
hex |
Určuje vložení nebo extrakci celočíselné hodnoty v šestnáctkovém formátu. |
in |
Určuje extrakci z datového proudu. |
internal |
Vloží znaky výplně do šířky pole tak, že do vygenerovaného číselného pole vloží vnitřní znaky. |
left |
Určuje levé odůvodnění. |
oct |
Určuje vložení nebo extrakci celočíselné hodnoty v osmičkovém formátu. |
out |
Určuje vložení do datového proudu. |
right |
Určuje správné odůvodnění. |
scientific |
Určuje vložení hodnot s plovoucí desetinnou čárkou ve vědeckém formátu (s exponentovým polem). |
showbase |
Určuje vložení předpony, která odhalí základ vygenerovaného celočíselného pole. |
showpoint |
Určuje bezpodmínečné vložení desetinné čárky do vygenerovaného pole s plovoucí desetinnou čárkou. |
showpos |
Určuje vložení znaménka plus do nenegativního číselného pole. |
skipws |
Určuje přeskočení úvodního prázdného místa před určitými extrahováními. |
trunc |
Určuje odstranění obsahu existujícího souboru při vytvoření jeho řídicího objektu. |
unitbuf |
Způsobí vyprázdnění výstupu po každém vložení. |
uppercase |
Určuje vložení velkých písmen odpovídajících malým písmenům v určitých vloženích. |
Funkce
Název | Popis |
---|---|
failure |
Členská třída slouží jako základní třída pro všechny výjimky vyvolané členské funkce vymazat v šabloně basic_ios třídy . |
flags |
Nastaví nebo vrátí aktuální nastavení příznaku. |
getloc |
Vrátí uložený locale objekt. |
imbue |
Změní národní prostředí. |
Init |
Vytvoří standardní iostream objekty při vytváření. |
iword |
Přiřadí hodnotu, která má být uložena iword jako . |
precision |
Určuje počet číslic, které se mají zobrazit v čísle s plovoucí desetinou čárkou. |
pword |
Přiřadí hodnotu, která má být uložena pword jako . |
register_callback |
Určuje funkci zpětného volání. |
setf |
Nastaví zadané příznaky. |
sync_with_stdio |
Zajišťuje, aby iostream operace knihovny runtime jazyka C probíhaly v pořadí, v jakém se zobrazují ve zdrojovém kódu. |
unsetf |
Způsobí vypnutí zadaných příznaků. |
width |
Nastaví délku výstupního datového proudu. |
xalloc |
Určuje, že proměnná musí být součástí datového proudu. |
Operátory
Název | Popis |
---|---|
operator= |
Operátor přiřazení pro ios_base objekty. |
Požadavky
Záhlaví: <ios>
Obor názvů: std
event
Určuje typy událostí.
enum event {
erase_event,
imbue_event,
copyfmt_event};
Poznámky
Typ je výčtový typ, který popisuje objekt, který může uložit událost zpětného volání použitou jako argument pro funkci zaregistrovanou v register_callback
. Jedinečné hodnoty událostí jsou:
copyfmt_event
– k identifikaci zpětného volání, ke kterému dojde blízko konce volánícopyfmt
, těsně před zkopírování masky výjimky.erase_event
, identifikovat zpětné volání, ke kterému dochází na začátku volánícopyfmt
, nebo na začátku volání destruktoru pro*this
.imbue_event
– k identifikaci zpětného volání, ke kterému dochází na konci voláníimbue
, těsně před vrácením funkce.
Příklad
Podívejte se register_callback
na příklad.
event_callback
Popisuje funkci předanou funkci register_call
.
typedef void (__cdecl *event_callback)(
event _E,
ios_base& _Base,
int _I);
Parametry
_E
event
.
_Base
Datový proud, ve kterém byla událost volána.
_I
Uživatelem definované číslo.
Poznámky
Typ popisuje ukazatel na funkci, kterou lze zaregistrovat pomocí register_callback
. Tento typ funkce nesmí vyvolat výjimku.
Příklad
Podívejte register_call
se na příklad, který používá event_callback
.
failure
Třída failure
definuje základní třídu pro typy všech objektů vyvolaných jako výjimky funkcemi v iostreams
knihovně za účelem hlášení chyb zjištěných během operací vyrovnávací paměti datového proudu.
namespace std {
class failure : public system_error {
public:
explicit failure(
const string& _Message,
const error_code& _Code = io_errc::stream);
explicit failure(
const char* str,
const error_code& _Code = io_errc::stream);
};
}
Poznámky
Hodnota vrácená what()
hodnotou je kopie _Message
, pravděpodobně rozšířena o test na _Code
základě . Pokud _Code
není zadána, výchozí hodnota je make_error_code(io_errc::stream)
.
Příklad
// ios_base_failure.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main ( )
{
using namespace std;
fstream file;
file.exceptions(ios::failbit);
try
{
file.open( "rm.txt", ios_base::in );
// Opens nonexistent file for reading
}
catch( ios_base::failure f )
{
cout << "Caught an exception: " << f.what() << endl;
}
}
Caught an exception: ios_base::failbit set
flags
Nastaví nebo vrátí aktuální nastavení příznaku.
fmtflags flags() const;
fmtflags flags(fmtflags fmtfl);
Parametry
fmtfl
Nové fmtflags
nastavení.
Návratová hodnota
Předchozí nebo aktuální fmtflags
nastavení.
Poznámky
Podívejte ios_base::fmtflags
se na seznam příznaků.
První členová funkce vrátí příznaky uloženého formátu. Druhá členová funkce se uloží fmtfl
do příznaků formátu a vrátí předchozí uloženou hodnotu.
Příklad
// ios_base_flags.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main ( )
{
using namespace std;
cout << cout.flags( ) << endl;
cout.flags( ios::dec | ios::boolalpha );
cout << cout.flags( );
}
513
16896
fmtflags
Konstanty, které určují vzhled výstupu.
class ios_base {
public:
typedef implementation-defined-bitmask-type fmtflags;
static const fmtflags boolalpha;
static const fmtflags dec;
static const fmtflags fixed;
static const fmtflags hex;
static const fmtflags internal;
static const fmtflags left;
static const fmtflags oct;
static const fmtflags right;
static const fmtflags scientific;
static const fmtflags showbase;
static const fmtflags showpoint;
static const fmtflags showpos;
static const fmtflags skipws;
static const fmtflags unitbuf;
static const fmtflags uppercase;
static const fmtflags adjustfield;
static const fmtflags basefield;
static const fmtflags floatfield;
// ...
};
Poznámky
Podporuje manipulátory v ios
.
Typ je bitová maska typu, který popisuje objekt, který může ukládat příznaky formátu. Jedinečné hodnoty příznaku (elementy) jsou:
dec
, chcete-li vložit nebo extrahovat celočíselné hodnoty v desítkovém formátu.hex
, chcete-li vložit nebo extrahovat celočíselné hodnoty v šestnáctkovém formátu.oct
, chcete-li vložit nebo extrahovat celočíselné hodnoty v osmičkovém formátu.showbase
– vložíte předponu, která odhalí základ vygenerovaného celočíselného pole.internal
– pokud chcete vložit šířku pole podle potřeby vložením znaků výplně do vygenerovaného číselného pole interně. (Informace o nastavení šířky pole najdete v tématusetw
).left
– pokud chcete vložit šířku pole podle potřeby vložením znaků výplně na konec vygenerovaného pole (zarovnání vlevo).right
– pokud chcete vložit šířku pole podle potřeby vložením znaků výplně na začátek vygenerovaného pole (pravé odůvodnění).boolalpha
, chcete-li vložit nebo extrahovat objekty typubool
jako názvy (napříkladtrue
afalse
) místo jako číselné hodnoty.fixed
, chcete-li vložit hodnoty s plovoucí desetinnou čárkou ve formátu s pevnou čárkou (bez exponentového pole).scientific
vloží hodnoty s plovoucí desetinnou čárkou ve vědeckém formátu (s exponentovým polem).showpoint
– pokud chcete do vygenerovaného pole s plovoucí desetinnou čárkou vložit desetinnou čárku bezpodmínečně.showpos
– pokud chcete vložit znaménko plus do nenegativního číselného pole.skipws
, chcete-li přeskočit úvodní prázdné znaky před určitými extrakcemi.unitbuf
, pro vyprázdnění výstupu po každém vložení.uppercase
, chcete-li v některých vloženích vložit velká písmena s velkými písmeny.
Kromě toho je několik užitečných hodnot:
adjustfield
, bitová maska definovaná jakointernal
|left
|right
basefield
, definováno jakodec
|hex
|oct
floatfield
, definováno jakofixed
|scientific
Příklady funkcí, které upravují tyto příznaky formátu, naleznete v tématu <iomanip>
.
getloc
Vrátí uložený locale
objekt.
locale getloc() const;
Návratová hodnota
Uložený locale
objekt.
Příklad
// ios_base_getlock.cpp
// compile with: /EHsc
#include <iostream>
int main( )
{
using namespace std;
cout << cout.getloc( ).name( ).c_str( ) << endl;
}
C
imbue
Změní národní prostředí.
locale imbue(const locale& _Loc);
Parametry
_Loc
Nové nastavení národního prostředí.
Návratová hodnota
Předchozí národní prostředí.
Poznámky
Členské funkce ukládá _Loc
do objektu locale
a poté hlásí událost zpětného volání a imbue_event
. Vrátí předchozí uloženou hodnotu.
Příklad
Podívejte se basic_ios::imbue
na ukázku.
Init
Vytvoří standardní iostream
objekty při vytváření.
class Init { };
Poznámky
Vnořená třída popisuje objekt, jehož konstrukce zajišťuje, že standardní iostream
objekty jsou správně sestaveny, i před spuštěním konstruktoru pro libovolný statický objekt.
ios_base
Vytváří objekty ios_base
.
ios_base();
Poznámky
Konstruktor (chráněný) nedělá nic. Pozdější volání basic_ios::
inicializace musí inicializovat objekt dříve, než bude možné bezpečně zničit. Jediným bezpečným použitím třídy ios_base
je tedy základní třída pro šablonu basic_ios
třídy .
iostate
Typ konstant, které popisují stav datového proudu.
class ios_base {
public:
typedef implementation-defined-bitmask-type iostate;
static const iostate badbit;
static const iostate eofbit;
static const iostate failbit;
static const iostate goodbit;
// ...
};
Poznámky
Typ je bitová maska typu, který popisuje objekt, který může ukládat informace o stavu datového proudu. Jedinečné hodnoty příznaku (elementy) jsou:
badbit
, pro zaznamenání ztráty integrity vyrovnávací paměti datového proudu.eofbit
– k zaznamenání koncového souboru při extrahování ze streamu.failbit
– pro zaznamenání selhání extrahování platného pole z datového proudu
Kromě toho je goodbit
užitečná hodnota , kde žádná z dříve zmíněných bitů není nastavena (goodbit
je zaručeno, že je nula).
iword
Přiřadí hodnotu, která má být uložena iword
jako .
long& iword(int idx);
Parametry
idx
Index hodnoty, která se má uložit jako iword
.
Poznámky
Členské funkce vrátí odkaz na idx prvku rozšiřitelného pole s prvky typu long
. Všechny prvky jsou efektivně přítomny a zpočátku ukládají hodnotu nula. Vrácený odkaz je neplatný po dalším volání iword
objektu po změně objektu voláním basic_ios::
copyfmt
nebo po zničení objektu.
Pokud idx
je záporné nebo pokud není pro prvek k dispozici jedinečné úložiště, funkce volá setstate
(badbit)
a vrací odkaz, který nemusí být jedinečný.
Chcete-li získat jedinečný index, pro použití ve všech objektech typu ios_base
, volání xalloc
.
Příklad
Podívejte se xalloc
na ukázku použití iword
.
openmode
Popisuje, jak pracovat s datovým proudem.
class ios_base {
public:
typedef implementation-defined-bitmask-type openmode;
static const openmode in;
static const openmode out;
static const openmode ate;
static const openmode app;
static const openmode trunc;
static const openmode binary;
// ...
};
Poznámky
Režim otevření pro několik iostream
objektů. Hodnoty příznaku jsou:
Konstanta | Účinnost |
---|---|
app |
Hledání na konec datového proudu před každým zápisem |
ate |
Okamžitě po otevření vyhledejte konec datového proudu. |
binary |
Otevřete v binárním režimu. (Viz fopen popis binárního režimu.) |
in |
Otevřít pro čtení |
out |
Otevřít pro psaní |
trunc |
Odstranění obsahu souboru po otevření |
Příklad
// ios_base_openmode.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main ( )
{
using namespace std;
fstream file;
file.open( "rm.txt", ios_base::out | ios_base::trunc );
file << "testing";
}
operator=
Operátor přiřazení pro ios_base
objekty.
ios_base& operator=(const ios_base& right);
Parametry
right
Objekt typu ios_base
.
Návratová hodnota
Objekt, ke kterému je přiřazen.
Poznámky
Operátor zkopíruje uložené informace o formátování a vytvoří novou kopii všech rozšiřitelných polí. Pak se vrátí *this
. Zásobník zpětného volání se nezkopíruje.
Tento operátor je používán pouze třídami odvozenými z ios_base
.
precision
Určuje počet číslic, které se mají zobrazit v čísle s plovoucí desetinou čárkou.
streamsize precision() const;
streamsize precision(streamsize _Prec);
Parametry
_Prec
Počet významných číslic, které se mají zobrazit, nebo počet číslic za desetinnou čárkou v pevném zápisu.
Návratová hodnota
První členová funkce vrátí uloženou přesnost zobrazení. Druhá členová funkce uloží _Prec
přesnost zobrazení a vrátí její předchozí uloženou hodnotu.
Poznámky
Čísla s plovoucí desetinou čárkou se zobrazují v pevném zápisu s fixed
.
Příklad
// ios_base_precision.cpp
// compile with: /EHsc
#include <iostream>
int main( )
{
using namespace std;
float i = 31.31234F;
cout.precision( 3 );
cout << i << endl; // display three significant digits
cout << fixed << i << endl; // display three digits after decimal
// point
}
31.3
31.312
pword
Přiřadí hodnotu, která má být uložena pword
jako .
void *& pword(int index);
Parametry
index
Index hodnoty, která se má uložit jako pword
.
Poznámky
Členová funkce vrátí odkaz na index prvku rozšiřitelného pole s prvky ukazatele typuvoid
. Všechny prvky jsou efektivně přítomny a zpočátku ukládají ukazatel null. Vrácený odkaz je neplatný po dalším volání pword
objektu po změně objektu voláním basic_ios::
copyfmt
nebo po zničení objektu.
Pokud je index záporný nebo pokud není pro prvek k dispozici jedinečné úložiště, funkce zavolá setstate
(badbit)
a vrátí odkaz, který nemusí být jedinečný.
Chcete-li získat jedinečný index, pro použití ve všech objektech typu ios_base
, volání xalloc
.
Příklad
Podívejte se xalloc
na příklad použití pword
.
register_callback
Určuje funkci zpětného volání.
void register_callback(
event_callback pfn, int idx);
Parametry
pfn
Ukazatel na funkci zpětného volání.
idx
Uživatelem definované číslo.
Poznámky
Členová funkce nasdílí dvojici {pfn, idx}
do zásobníku zpětného volání uloženého zásobníku zpětného volání. Pokud je hlášena událost zpětného volání ev , funkce jsou volány v obráceném pořadí registru výrazem (*pfn)(ev, *this, idx)
.
Příklad
// ios_base_register_callback.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void callback1( ios_base::event e, ios_base& stream, int arg )
{
cout << "in callback1" << endl;
switch ( e )
{
case ios_base::erase_event:
cout << "an erase event" << endl;
break;
case ios_base::imbue_event:
cout << "an imbue event" << endl;
break;
case ios_base::copyfmt_event:
cout << "an copyfmt event" << endl;
break;
};
}
void callback2( ios_base::event e, ios_base& stream, int arg )
{
cout << "in callback2" << endl;
switch ( e )
{
case ios_base::erase_event:
cout << "an erase event" << endl;
break;
case ios_base::imbue_event:
cout << "an imbue event" << endl;
break;
case ios_base::copyfmt_event:
cout << "an copyfmt event" << endl;
break;
};
}
int main( )
{
// Make sure the imbue will not throw an exception
// assert( setlocale( LC_ALL, "german" )!=NULL );
cout.register_callback( callback1, 0 );
cin.register_callback( callback2, 0 );
try
{
// If no exception because the locale's not found,
// generate an imbue_event on callback1
cout.imbue(locale("german"));
}
catch(...)
{
cout << "exception" << endl;
}
// This will
// (1) erase_event on callback1
// (2) copyfmt_event on callback2
cout.copyfmt(cin);
// We get two erase events from callback2 at the end because
// both cin and cout have callback2 registered when cin and cout
// are destroyed at the end of program.
}
in callback1
an imbue event
in callback1
an erase event
in callback2
an copyfmt event
in callback2
an erase event
in callback2
an erase event
seekdir
Určuje výchozí bod pro operace posunu.
namespace std {
class ios_base {
public:
typedef implementation-defined-enumerated-type seekdir;
static const seekdir beg;
static const seekdir cur;
static const seekdir end;
// ...
};
}
Poznámky
Typ je výčtový typ, který popisuje objekt, který může uložit režim hledání použitý jako argument pro členské funkce několika iostream
tříd. Jedinečné hodnoty příznaku jsou:
beg
– chcete-li vyhledat (změnit aktuální pozici čtení nebo zápisu) vzhledem k začátku sekvence (pole, stream nebo soubor).cur
, pro hledání relativní vzhledem k aktuální pozici v posloupnosti.end
, aby se vyhledaly vzhledem ke konci sekvence.
Příklad
// ios_base_seekdir.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main ( )
{
using namespace std;
fstream file;
file.open( "rm.txt", ios_base::out | ios_base::trunc );
file << "testing";
file.seekp( 0, ios_base::beg );
file << "a";
file.seekp( 0, ios_base::end );
file << "a";
}
setf
Nastaví zadané příznaky.
fmtflags setf(
fmtflags _Mask
);
fmtflags setf(
fmtflags _Mask,
fmtflags _Unset
);
Parametry
_Mask
Příznaky, které se mají zapnout.
_Unset
Příznaky, které se mají vypnout.
Návratová hodnota
Příznaky předchozího formátu
Poznámky
První členová funkce efektivně volá flags(_Mask | _Flags)
(nastavte vybrané bity) a poté vrátí příznaky předchozího formátu. Druhá členová funkce efektivně volá flags(_Mask & fmtfl, flags & ~_Mask)
(nahradí vybrané bity pod maskou) a vrátí příznaky předchozího formátu.
Příklad
// ios_base_setf.cpp
// compile with: /EHsc
#include <iostream>
int main( )
{
using namespace std;
int i = 10;
cout << i << endl;
cout.unsetf( ios_base::dec );
cout.setf( ios_base::hex );
cout << i << endl;
cout.setf( ios_base::dec );
cout << i << endl;
cout.setf( ios_base::hex, ios_base::dec );
cout << i << endl;
}
sync_with_stdio
Zajišťuje, aby iostream
operace knihovny runtime jazyka C probíhaly v pořadí, v jakém se zobrazují ve zdrojovém kódu.
static bool sync_with_stdio(
bool _Sync = true
);
Parametry
_Sync
Zda jsou všechny streamy synchronizované s stdio
.
Návratová hodnota
Předchozí nastavení této funkce
Poznámky
Statická členová funkce ukládá stdio
příznak synchronizace, který je původně true
. Pokud true
tento příznak zajistí, že se operace ve stejném souboru správně synchronizují mezi iostreams
funkcemi a funkcemi definovanými ve standardní knihovně jazyka C++. Jinak synchronizace může nebo nemusí být zaručená, ale může se zlepšit výkon. Funkce se uloží _Sync
do příznaku stdio
synchronizace a vrátí předchozí uloženou hodnotu. Můžete ho volat spolehlivě pouze před provedením jakýchkoli operací na standardních datových proudech.
unsetf
Vypne zadané příznaky.
void unsetf(
fmtflags _Mask
);
Parametry
_Mask
Příznaky, které chcete vypnout.
Poznámky
Členová funkce efektivně volá flags(~_Mask & flags)
(vymaže vybrané bity).
Příklad
Podívejte ios_base::setf
se na ukázku použití unsetf
.
width
Nastaví délku výstupního datového proudu.
streamsize width( ) const;
streamsize width(
streamsize _Wide
);
Parametry
_Wide
Požadovaná velikost výstupního streamu.
Návratová hodnota
Nastavení aktuální šířky.
Poznámky
První členová funkce vrátí uloženou šířku pole. Druhá členová funkce se uloží _Wide
do šířky pole a vrátí předchozí uloženou hodnotu.
Příklad
// ios_base_width.cpp
// compile with: /EHsc
#include <iostream>
int main( ) {
using namespace std;
cout.width( 20 );
cout << cout.width( ) << endl;
cout << cout.width( ) << endl;
}
20
0
xalloc
Určuje, že proměnná je součástí datového proudu.
static int xalloc( );
Návratová hodnota
Statická členová funkce vrátí uloženou statickou hodnotu, která se zvýší při každém volání.
Poznámky
Návratovou hodnotu můžete použít jako jedinečný argument indexu při volání členských funkcí iword
nebo pword
.
Příklad
// ios_base_xalloc.cpp
// compile with: /EHsc
// Lets you store user-defined information.
// iword, jword, xalloc
#include <iostream>
int main( )
{
using namespace std;
static const int i = ios_base::xalloc();
static const int j = ios_base::xalloc();
cout.iword( i ) = 11;
cin.iword( i ) = 13;
cin.pword( j ) = "testing";
cout << cout.iword( i ) << endl;
cout << cin.iword( i ) << endl;
cout << ( char * )cin.pword( j ) << endl;
}
11
13
testing
Viz také
Bezpečný přístup z více vláken ve standardní knihovně C++
iostream – programování
iostreams – konvence