Strumienie wyjściowe
Obiekt strumienia wyjściowego jest miejscem docelowym dla bajtów. Trzy najważniejsze klasy strumieni wyjściowych to ostream
, ofstream
i ostringstream
.
Klasa ostream
za pośrednictwem klasy basic_ostream
pochodnej obsługuje wstępnie zdefiniowane obiekty strumienia:
cout
standardowe dane wyjściowecerr
błąd standardowy z ograniczonym buforowaniemclog
podobnie jak w przypadkucerr
pełnego buforowania
Obiekty są rzadko konstruowane z ostream
obiektu ; zwykle używane są wstępnie zdefiniowane obiekty. W niektórych przypadkach można ponownie przypisać wstępnie zdefiniowane obiekty po uruchomieniu programu. Klasa ostream
, którą można skonfigurować dla operacji buforowanej lub niebuforowanej, najlepiej nadaje się do sekwencyjnych danych wyjściowych trybu tekstowego. Wszystkie funkcje klasy bazowej, ios
, są uwzględnione w .ostream
Jeśli skonstruujesz obiekt klasy ostream
, musisz określić streambuf
obiekt konstruktora.
Klasa ofstream
obsługuje dane wyjściowe pliku dysku. Jeśli potrzebujesz dysku tylko do danych wyjściowych, skonstruuj obiekt klasy ofstream
. Można określić, czy ofstream
obiekty akceptują dane binarne lub tekstowe podczas konstruowania ofstream
obiektu, czy podczas wywoływania open
funkcji składowej obiektu. Wiele opcji formatowania i funkcji składowych ma zastosowanie do ofstream
obiektów oraz wszystkich funkcji klas ios
bazowych i ostream
jest uwzględnionych.
Jeśli określisz nazwę pliku w konstruktorze, ten plik zostanie automatycznie otwarty podczas konstruowania obiektu. W przeciwnym razie można użyć funkcji składowej open
po wywołaniu konstruktora domyślnego.
Podobnie jak funkcja sprintf_s
czasu wykonywania, ostringstream
klasa obsługuje dane wyjściowe w ciągach w pamięci. Aby utworzyć ciąg w pamięci przy użyciu formatowania strumieni we/wy, skonstruuj obiekt klasy ostringstream
.
W tej sekcji
Konstruowanie obiektów strumienia wyjściowego
Korzystanie z operatorów wstawiania i formatu kontrolującego
Funkcje składowe strumienia pliku danych wyjściowych
Przeciążanie << operatora dla własnych klas
Tworzenie manipulatorów bez argumentów