名前空間
変種
操作

std::cout, std::wcout

提供: cppreference.com
< cpp‎ | io
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
ヘッダ <iostream> で定義
extern std::ostream cout;
(1)
extern std::wostream wcout;
(2)

グローバルオブジェクト std::cout および std::wcout は標準 C 出力ストリーム stdout に紐付けられている処理系定義の (std::streambuf から派生した) 型のストリームバッファへの出力を制御します。

これらのオブジェクトは std::ios_base::Init 型のオブジェクトが最初に構築されるときまたはそれより前に初期化されることが保証されており、順序付き初期化を行う静的オブジェクトのコンストラクタおよびデストラクタ内で使用することができます (そのオブジェクトが定義されるより前に <iostream> がインクルードされている限り)。

sync_with_stdio(false) が行われていなければ、書式付き出力と書式なし出力のどちらについても、これらのオブジェクトに複数のスレッドから並行的にアクセスしても安全です。

いったん初期化されると、 std::coutstd::cintie() され、 std::wcoutstd::wcintie() されます。 これは、 std::cin に対するあらゆる入力操作が (std::basic_istream::sentry のコンストラクタを通して) std::cout.flush() を実行することを意味します。

いったん初期化されると、 std::coutstd::cerr にも tie() され、 std::wcoutstd::wcerr にも tie() されます。 これは、 std::cerr に対するあらゆる出力操作が (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 object
int main()
{
    std::cout << "main function\n";
}

出力:

static constructor
main function
static destructor

[編集] 関連項目

標準ストリームオブジェクトを��期化します
(std::ios_baseのパブリックメンバクラス) [edit]
標準 C エラーストリーム stderr に書き込みます。 バッファリングされません
(グローバルオブジェクト) [edit]
標準 C エラーストリーム stderr に書き込みます
(グローバルオブジェクト) [edit]
入力ストリームに関連付けられた FILE* 型の式
出力ストリームに関連付けられた FILE* 型の式
エラー出力ストリームに関連付けられた FILE* 型の式
(マクロ定数) [edit]