This header is part of theInput/output library.
Including<iostream>
behaves as if it defines a static storage duration object of typestd::ios_base::Init, whose constructor initializes the standard stream objects if it is the firststd::ios_base::Init
object to be constructed, and whose destructor flushes those objects (except forcin
andwcin
) if it is the laststd::ios_base::Init
object to be destroyed.
Includes | ||
(C++11) | std::ios_base class,std::basic_ios class template and typedefs[edit] | |
(C++11) | std::basic_streambuf class template[edit] | |
(C++11) | std::basic_istream class template and typedefs[edit] | |
(C++11) | std::basic_ostream,std::basic_iostream class templates and typedefs[edit] | |
Objects | ||
reads from the standard C input streamstdin (global object)[edit] | ||
writes to the standard C output streamstdout (global object)[edit] | ||
writes to the standard C error streamstderr, unbuffered (global object)[edit] | ||
writes to the standard C error streamstderr (global object)[edit] |
#include <ios>#include <streambuf>#include <istream>#include <ostream> namespace std{extern istream cin;extern ostream cout;extern ostream cerr;extern ostream clog; extern wistream wcin;extern wostream wcout;extern wostream wcerr;extern wostream wclog;}
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 155 | C++98 | the type of the static object wasstd::basic_ios::Init (not strictly wrong, but the wording was misleading) | corrected tostd::ios_base::Init |
LWG 1123 | C++98 | including<iostream> did not guarantee theconstruction ofstd::ios_base::Init objects | guarantees |