std::cout,std::wcout(3)
π std::cout,std::wcout π
okay bestie, this is straight from the C++ Standard Libary, section 3 β and itβs literally the page for std::cout,std::wcout. no cap, these two are the main-character output girlies of C++. π
π NAME π
std::cout,std::wcout β literally std::cout,std::wcout. thatβs the name, thatβs the vibe. β¨
β¨ Synopsis β¨
Defined in header <iostream>:
extern std::ostream cout; (1)
extern std::wostream wcout; (2)
The global objects std::cout and std::wcout control output to a stream buffer of implementation-defined type (derived from std::streambuf), associated with the standard C output stream stdout. π«Ά
These objects are guaranteed to be initialized during or before the first time an object of type std::ios_base::Init is constructed and are available for use in the constructors and destructors of static objects with ordered initialization (as long as <iostream> is included before the object is defined). π
Unless std::ios_base::sync_with_stdio(false) has been issued, it is safe to concurrently access these objects from multiple threads for both formatted and unformatted output. π₯
By specification of std::cin, std::cin.tie() returns &std::cout. This means that any input operation on std::cin executes std::cout.flush() (via std::basic_istream::sentry's constructor). Similarly, std::wcin.tie() returns &std::wcout. π
By specification of std::cerr, std::cerr.tie() returns &std::cout. This means that any output operation on std::cerr executes std::cout.flush() (via std::basic_ostream::sentry's constructor). Similarly, std::wcerr.tie() returns &std::wcout. (since C++11) π
π Notes π
The c in the name refers to "character" (stroustrup.com FAQ); cout means "character output" and wcout means "wide character output". π
Because dynamic initialization of templated variables are unordered, it is not guaranteed that std::cout has been initialized to a usable state before the initialization of such variables begins, unless an object of type std::ios_base::Init has been constructed. π
π Example π
// Run this code
#include <iostream>
struct Foo
{
int n;
Foo()
{
std::cout << "static constructor\n";
}
~Foo()
{
std::cout << "static destructor\n";
}
};
Foo f; // static object
int main()
{
std::cout << "main function\n";
}
π Output: π
static constructor
main function
static destructor
π¦ See also π¦
Initβ initializes standard stream objects (public member class ofstd::ios_base)cerrβ writes to the standard C error streamstderr, unbufferedwcerrβ (global object)clogβ writes to the standard C error streamstderrwclogβ (global object)stdinβ expression of typeFILE*associated with the input streamstdoutβ expression of typeFILE*associated with the output streamstderrβ expression of typeFILE*associated with the error output stream (macro constant)
signed, sealed, and slayed by cppreference.com β 2024.06.10 β page std::cout,std::wcout(3). ππ
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms