名前空間
変種
操作

std::cin, std::wcin

From cppreference.com
< cpp‎ | io
 
 
 
 
ヘッダ <iostream> で定義
extern std::istream cin;
(1)
extern std::wistream wcin;
(2)

グローバルオブジェクト std::cinstd::wcin は、標準 C 入力ストリーム stdin に関連付けられた、実装定義の型 (std::streambuf から派生) のストリームバッファからの入力を制御します。

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

sync_with_stdio(false) が発行されていない限り、フォーマット済み入力と非フォーマット済み入力の両方について、これらのオブジェクトに複数のスレッドから同時にアクセスしても安全です。

初期化後

1) std::cin.tie()&std::cout を返します。これは、std::cin での入力操作は、出力待ちの文字がある場合、std::cout.flush() の呼び出しを強制することを意味します。
2) std::wcin.tie()&std::wcout を返します。これは、std::wcin での入力操作は、出力待ちの文字がある場合、std::wcout.flush() の呼び出しを強制することを意味します。

[編集] 備考

名前に含まれる「c」は「character (文字)」を指します (stroustrup.com FAQ)。cin は「character input (文字入力)」を意味し、wcin は「wide character input (ワイド文字入力)」を意味します。

[編集]

#include <iostream>
 
struct Foo
{
    int n;
    Foo()
    {
        std::cout << "Enter n: "; // no flush needed
        std::cin >> n;
    }
};
 
Foo f; // static object
 
int main()
{
    std::cout << "f.n is " << f.n << '\n';
}

実行結果の例

Enter n: 10
f.n is 10

[編集] 関連項目

標準ストリームオブジェクトを初期化する
(std::ios_base の public メンバクラス) [編集]
標準C出力ストリーム stdout に書き込む
(グローバルオブジェクト)[編集]
入力ストリームに関連付けられた FILE* 型の式
出力ストリームに関連付けられた FILE* 型の式
エラー出力ストリームに関連付けられた FILE* 型の式
(マクロ定数) [編集]
English 日本語 中文(简体) 中文(繁體)