<iostream>
Deklaruje objekty, které řídí čtení a zápis do standardních datových proudů. To je často jediná hlavička, kterou potřebujete udělat vstup a výstup z programu C++.
Syntaxe
#include <iostream>
Poznámka:
Knihovna <iostream>
používá příkazy #include <ios>
, #include <streambuf>
, #include <istream>
a #include <ostream>
příkazy.
Poznámky
Objekty spadají do dvou skupin:
cin
, ,cout
cerr
aclog
jsou bajtově orientované, provádějí konvenční bajtové přenosy v čase.wcin
, ,wcout
wcerr
awclog
jsou široce orientované, překládá na a z širokých znaků, které program interně manipuluje.
Jakmile provedete určité operace s datovým proudem, jako je standardní vstup, nemůžete provádět operace s jinou orientací ve stejném datovém proudu. Program proto nemůže fungovat zaměnitelně na obou cin
a wcin
, například.
Všechny objekty deklarované v této hlavičce sdílejí zvláštní vlastnost – můžete předpokládat, že jsou sestaveny před libovolnými statickými objekty, které definujete, v jednotce překladu, která zahrnuje <iostream>
. Stejně můžete předpokládat, že tyto objekty nejsou zničeny před destruktory pro všechny takové statické objekty, které definujete. (Výstupní datové proudy se však vyprazdní během ukončení programu.) Proto můžete bezpečně číst ze standardních datových proudů nebo zapisovat do standardních datových proudů před spuštěním programu a po ukončení programu.
Tato záruka ale není univerzální. Statický konstruktor může volat funkci v jiné jednotce překladu. Volaná funkce nemůže předpokládat, že objekty deklarované v této hlavičce byly sestaveny vzhledem k nejistému pořadí, ve kterém se jednotky překladu účastní statické konstrukce. Chcete-li tyto objekty použít v takovém kontextu, musíte nejprve vytvořit objekt třídy ios_base::Init
.
Globální objekty streamu
Název | Popis |
---|---|
cerr |
Určuje cerr globální datový proud. |
cin |
Určuje cin globální datový proud. |
clog |
Určuje clog globální datový proud. |
cout |
Určuje cout globální datový proud. |
wcerr |
Určuje wcerr globální datový proud. |
wcin |
Určuje wcin globální datový proud. |
wclog |
Určuje wclog globální datový proud. |
wcout |
Určuje wcout globální datový proud. |
cerr
Objekt cerr
řídí výstup do vyrovnávací paměti datového proudu přidruženého k objektu stderr
, deklarovaný v <cstdio>
.
extern ostream cerr;
Návratová hodnota
Objekt ostream
.
Poznámky
Objekt řídí nezachycené vložení do standardního výstupu chyby jako bajtového datového proudu. Po vytvoření objektu je výraz cerr.flags & unitbuf
nenulová a cerr.tie() == &cout
. Další podrobnosti najdete v tématu cerr.flags
a unitbuf
.
Příklad
// iostream_cerr.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void TestWide( )
{
int i = 0;
wcout << L"Enter a number: ";
wcin >> i;
wcerr << L"test for wcerr" << endl;
wclog << L"test for wclog" << endl;
}
int main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
cerr << "test for cerr" << endl;
clog << "test for clog" << endl;
TestWide( );
}
cin
Určuje cin
globální datový proud.
extern istream cin;
Návratová hodnota
Objekt istream
.
Poznámky
Objekt řídí extrakci ze standardního vstupu jako bajtového datového proudu. Jakmile je objekt vytvořen, volání cin.tie
vrátí &cout
.
Příklad
V tomto příkladu nastaví bit selhání ve streamu, cin
když se zobrazí nečíselné znaky. Program vymaže bit selhání a zruší neplatný znak z datového proudu, aby pokračoval.
// iostream_cin.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "enter choice:";
cin >> x;
while (x < 1 || x > 4)
{
cout << "Invalid choice, try again:";
cin >> x;
// not a numeric character, probably
// clear the failure and pull off the non-numeric character
if (cin.fail())
{
cin.clear();
char c;
cin >> c;
}
}
}
2
clog
Určuje clog
globální datový proud.
extern ostream clog;
Návratová hodnota
Objekt ostream
.
Poznámky
Objekt řídí vložení do vyrovnávací paměti do standardního výstupu chyby jako bajtového datového proudu.
Příklad
Podívejte se cerr
na příklad použití clog
.
cout
Určuje cout
globální datový proud.
extern ostream cout;
Návratová hodnota
Objekt ostream
.
Poznámky
Objekt řídí vložení do standardního výstupu jako bajtového datového proudu.
Příklad
Podívejte se cerr
na příklad použití cout
.
wcerr
Určuje wcerr
globální datový proud.
extern wostream wcerr;
Návratová hodnota
Objekt wostream
.
Poznámky
Objekt řídí nezařazené kurzory do standardního výstupu chyb jako široký datový proud. Po vytvoření objektu je výraz wcerr.flags & unitbuf
nenulová. Další podrobnosti najdete v tématu wcerr.flags
a unitbuf
.
Příklad
Podívejte se cerr
na příklad použití wcerr
.
wcin
Určuje wcin
globální datový proud.
extern wistream wcin;
Návratová hodnota
Objekt wistream
.
Poznámky
Objekt řídí extrakci ze standardního vstupu jako širokého datového proudu. Jakmile je objekt vytvořen, volání wcin.tie
vrátí &wcout
.
Příklad
Podívejte se cerr
na příklad použití wcin
.
wclog
Určuje wclog
globální datový proud.
extern wostream wclog;
Návratová hodnota
Objekt wostream
.
Poznámky
Objekt řídí vložení do vyrovnávací paměti do standardního výstupu chyby jako široký datový proud.
Příklad
Podívejte se cerr
na příklad použití wclog
.
wcout
Určuje wcout
globální datový proud.
extern wostream wcout;
Návratová hodnota
Objekt wostream
.
Poznámky
Objekt řídí vložení do standardního výstupu jako širokého datového proudu.
Příklad
Podívejte se cerr
na příklad použití wcout
.
CString
instance v wcout
příkazu musí být přetypován na const wchar_t*
, jak je znázorněno v následujícím příkladu.
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
Další informace naleznete v tématu Základní operace CString.
Viz také
Referenční informace k souborům hlaviček
Bezpečný přístup z více vláken ve standardní knihovně C++
iostream – programování
iostreams – konvence