std::cout, std::wcout
ヘッダ <iostream> で定義 | ||
externstd::ostream cout; | (1) | |
externstd::wostream wcout; | (2) | |
グローバルオブジェクト std::cout
および std::wcout
は標準 C 出力ストリーム stdout に紐付けられている処理系定義の (std::streambuf から派生した) 型のストリームバッファへの出力を制御します。
これらのオブジェクトは std::ios_base::Init 型のオブジェクトが最初に構築されるときまたはそれより前に初期化されることが保証されており、順序付き初期化を行う静的オブジェクトのコンストラクタおよびデストラクタ内で使用することができます (そのオブジェクトが定義されるより前に <iostream>
がインクルードされている限り)。
sync_with_stdio(false) が行われていなければ、書式付き出力と書式なし出力のどちらについても、これらのオブジェクトに複数のスレッドから並行的にアクセスしても安全です。
いったん初期化されると、 std::cout
は std::cin に tie() され、 std::wcout
は std::wcin に tie() されます。 これは、 std::cin に対するあらゆる入力操作が (std::basic_istream::sentry のコンストラクタを通して) std::cout.flush() を実行することを意味します。
いったん初期化されると、 | (C++11以上) |
[編集]ノート
名前の中の「c」は「character」を表します (stroustrup.com FAQ)。 cout
は「character output」、 wcout
は「wide character output」という意味です。
[編集]例
#include <iostream>struct Foo {int n; Foo(){ std::cout<<"static constructor\n";} ~Foo(){ std::cout<<"static destructor\n";}}; Foo f;// static objectint main(){ std::cout<<"main function\n";}
出力:
static constructor main function static destructor
[編集]関連項目
標準ストリームオブジェクトを初期化します ( std::ios_base のパブリックメンバクラス) | |
標準 C エラーストリーム stderr に書き込みます。 バッファリングされません (グローバルオブジェクト) | |
標準 C エラーストリーム stderr に書き込みます (グローバルオブジェクト) | |
入力ストリームに関連付けられた FILE* 型の式 出力ストリームに関連付けられた FILE* 型の式 エラー出力ストリームに関連付けられた FILE* 型の式 (マクロ定数) |