std::cin, std::wcin
来自cppreference.com
<tbody>
</tbody>
| 在标头 <iostream> 定义
|
||
extern std::istream cin; |
(1) | |
extern std::wistream wcin; |
(2) | |
全局对象 std::cin 和 std::wcin 控制来自某个与标准 C 输入流 stdin 关联的实现定义类型(派生于 std::streambuf)的流缓冲区的输入。
保证在首次构造 std::ios_base::Init 前或期间初始化这些对象,且它们可以在拥有有序初始化的静态对象的构造及析构函数中使用(只要在定义该对象前包含 <iostream>)。
除非发出了 sync_with_stdio(false),从多个线程访问这些对象,进行有格式和无格式输入是安全的。
初始化完成时:
2)
std::wcin.tie() 会返回 &std::wcout。这表示若有任何等待输出的字符,那么 std::wcin 上的任何输入操作都会强制调用 std::wcout.flush()。注解
名称中的 “c” 代表 “character”(stroustrup.com FAQ);cin 表示“字符输入”而 wcin 表示“宽字符输入”。
示例
运行此代码
#include <iostream>
struct Foo
{
int n;
Foo()
{
std::cout << "输入 n:"; // 不需要冲入
std::cin >> n;
}
};
Foo f; // 静态对象
int main()
{
std::cout << "f.n 是 " << f.n << '\n';
}
可能的输出:
输入 n:10
f.n 是 10
参阅
| 初始化标准流对象 ( std::ios_base 的公开成员类)
| |
| 写入到标准 C 输出流 stdout (全局对象) | |
与输入流关联的 FILE* 类型表达式与输出流关联的 FILE* 类型表达式与错误输出流关联的 FILE* 类型表达式 (宏常量) |