Udostępnij za pośrednictwem


<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, , coutcerri clog są zorientowane bajtowo, wykonując konwencjonalne transfery bajtów w czasie.

  • wcin, , wcoutwcerri wclog 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