<iostream>
Deklaruje obiekty kontrolujące odczyt i zapis do standardowych strumieni. Jest to często jedyny nagłówek, który należy wprowadzić i dane wyjściowe z programu C++.
Składnia
#include <iostream>
Uwaga
Biblioteka <iostream>
używa instrukcji #include <ios>
, #include <streambuf>
, #include <istream>
i #include <ostream>
.
Uwagi
Obiekty dzielą się na dwie grupy:
cin
, ,cout
cerr
iclog
są zorientowane bajtowo, wykonując konwencjonalne transfery bajtów w czasie.wcin
, ,wcout
wcerr
iwclog
są szeroko zorientowane, tłumacząc na i od szerokich znaków, które program manipuluje wewnętrznie.
Po zakończeniu niektórych operacji na strumieniu, takich jak standardowe dane wejściowe, nie można wykonywać operacji innej orientacji na tym samym strumieniu. W związku z tym program nie może działać zamiennie w systemach cin
i wcin
, na przykład.
Wszystkie obiekty zadeklarowane w tym nagłówku mają osobliwą właściwość — można założyć, że są one konstruowane przed zdefiniowanymi obiektami statycznymi w jednostce tłumaczenia zawierającej <iostream>
element . Można również założyć, że te obiekty nie są niszczone przed destruktorami dla takich zdefiniowanych obiektów statycznych. (Strumienie wyjściowe są jednak opróżniane podczas kończenia działania programu). W związku z tym można bezpiecznie odczytywać strumienie standardowe lub zapisywać je przed uruchomieniem programu i po zakończeniu programu.
Ta gwarancja nie jest jednak uniwersalna. Konstruktor statyczny może wywołać funkcję w innej jednostce tłumaczenia. Wywołana funkcja nie może zakładać, że obiekty zadeklarowane w tym nagłówku zostały skonstruowane, biorąc pod uwagę niepewną kolejność, w której jednostki tłumaczenia uczestniczą w konstrukcji statycznej. Aby użyć tych obiektów w takim kontekście, należy najpierw skonstruować obiekt klasy ios_base::Init
.
Obiekty strumienia globalnego
Nazwa/nazwisko | opis |
---|---|
cerr |
Określa cerr strumień globalny. |
cin |
Określa cin strumień globalny. |
clog |
Określa clog strumień globalny. |
cout |
Określa cout strumień globalny. |
wcerr |
Określa wcerr strumień globalny. |
wcin |
Określa wcin strumień globalny. |
wclog |
Określa wclog strumień globalny. |
wcout |
Określa wcout strumień globalny. |
cerr
Obiekt cerr
kontroluje dane wyjściowe do buforu strumienia skojarzonego z obiektem stderr
, zadeklarowanym w pliku <cstdio>
.
extern ostream cerr;
Wartość zwracana
Obiekt ostream
.
Uwagi
Obiekt kontroluje niebuforowane wstawienia do standardowych danych wyjściowych błędu jako strumienia bajtów. Po utworzeniu obiektu wyrażenie cerr.flags & unitbuf
nie jestzerowe i cerr.tie() == &cout
. Aby uzyskać więcej informacji, zobacz cerr.flags
i unitbuf
.
Przykład
// 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
Określa cin
strumień globalny.
extern istream cin;
Wartość zwracana
Obiekt istream
.
Uwagi
Obiekt steruje wyodrębnianiem ze standardowych danych wejściowych jako strumienia bajtów. Po utworzeniu obiektu wywołanie zwraca wartość cin.tie
&cout
.
Przykład
W tym przykładzie ustawia bit niepowodzenia w strumieniu, cin
gdy występuje on w znakach nieliczbowych. Program czyści bit niepowodzenia i usuwa nieprawidłowy znak ze strumienia, aby kontynuować.
// 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
Określa clog
strumień globalny.
extern ostream clog;
Wartość zwracana
Obiekt ostream
.
Uwagi
Kontrolki obiektu buforowane wstawiania do standardowych danych wyjściowych błędu jako strumienia bajtów.
Przykład
Zobacz cerr
przykład użycia elementu clog
.
cout
Określa cout
strumień globalny.
extern ostream cout;
Wartość zwracana
Obiekt ostream
.
Uwagi
Obiekt steruje wstawianiami do standardowych danych wyjściowych jako strumienia bajtów.
Przykład
Zobacz cerr
przykład użycia elementu cout
.
wcerr
Określa wcerr
strumień globalny.
extern wostream wcerr;
Wartość zwracana
Obiekt wostream
.
Uwagi
Obiekt kontroluje niebuforowane wstawienia do standardowych danych wyjściowych błędów jako szeroki strumień. Po utworzeniu obiektu wyrażenie wcerr.flags & unitbuf
nie jestzerowe. Aby uzyskać więcej informacji, zobacz wcerr.flags
i unitbuf
.
Przykład
Zobacz cerr
przykład użycia elementu wcerr
.
wcin
Określa wcin
strumień globalny.
extern wistream wcin;
Wartość zwracana
Obiekt wistream
.
Uwagi
Obiekt steruje wyodrębnianiem ze standardowych danych wejściowych jako strumienia szerokiego. Po utworzeniu obiektu wywołanie zwraca wartość wcin.tie
&wcout
.
Przykład
Zobacz cerr
przykład użycia elementu wcin
.
wclog
Określa wclog
strumień globalny.
extern wostream wclog;
Wartość zwracana
Obiekt wostream
.
Uwagi
Kontrolki obiektu buforowane wstawiania do standardowych danych wyjściowych błędów jako szeroki strumień.
Przykład
Zobacz cerr
przykład użycia elementu wclog
.
wcout
Określa wcout
strumień globalny.
extern wostream wcout;
Wartość zwracana
Obiekt wostream
.
Uwagi
Obiekt steruje wstawianiami do standardowych danych wyjściowych jako strumienia szerokiego.
Przykład
Zobacz cerr
przykład użycia elementu wcout
.
CString
wystąpienia w wcout
instrukcji należy rzutować na const wchar_t*
, jak pokazano w poniższym przykładzie.
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
Aby uzyskać więcej informacji, zobacz Podstawowe operacje CString.
Zobacz też
Odwołanie do plików nagłówka
Bezpieczeństwo wątku w standardowej bibliotece C++
iostream, programowanie
Konwencje iostream