名稱空間
變體
操作

std::cin, std::wcin

來自 cppreference.com
< cpp‎ | io
 
 
 
 
定義於標頭檔案 <iostream>
extern std::istream cin;
(1)
extern std::wistream wcin;
(2)

全域性物件 std::cinstd::wcin 控制著來自實現定義型別(派生自 std::streambuf)的流緩衝區的輸入,該緩衝區與標準 C 輸入流 stdin 相關聯。

這些物件保證在型別為 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”指的是“字元”(stroustrup.com FAQ);cin 表示“字元輸入”,wcin 表示“寬字元輸入”。

[編輯] 示例

#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 的公共成員類) [編輯]
寫入標準 C 輸出流 stdout
(全域性物件)[編輯]
與輸入流關聯的 FILE* 型別的表示式
與輸出流關聯的 FILE* 型別的表示式
與錯誤輸出流關聯的 FILE* 型別的表示式
(宏常量) [編輯]