C++
编译器支持
自由(freestanding)与宿主(hosted)
语言
标准库
标准库头文件
具名要求
特性测试宏 (C++20)
语言支持库
概念库 (C++20)
诊断库
内存管理库
元编程库 (C++11)
通用工具库
容器库
迭代器库
范围库 (C++20)
算法库
字符串库
文本处理库
数值库
日期和时间库
输入/输出库
文件系统库 (C++17)
并发支持库 (C++11)
执行控制库 (C++26)
技术规范
符号索引
外部库
[编辑] 输入/输出库
I/O 操纵器
打印函数 (C++23)
C 风格 I/O
缓冲区
basic_streambuf
basic_filebuf
basic_stringbuf
basic_spanbuf(C++23)
strstreambuf(C++98/26*)
basic_syncbuf(C++20)
流
抽象
ios_base
basic_ios
basic_istream
basic_ostream
basic_iostream
文件 I/O
basic_ifstream
basic_ofstream
basic_fstream
字符串 I/O
basic_istringstream
basic_ostringstream
basic_stringstream
数组 I/O
basic_ispanstream(C++23)
basic_ospanstream(C++23)
basic_spanstream(C++23)
istrstream(C++98/26*)
ostrstream(C++98/26*)
strstream(C++98/26*)
同步输出
basic_osyncstream(C++20)
类型
streamoff
streamsize
fpos
错误类别接口
iostream_category(C++11)
io_errc(C++11)
[编辑] std::basic_istream
全局对象
cinwcin
成员函数
basic_istream::basic_istream
basic_istream::~basic_istream
basic_istream::operator=(C++11)
格式化输入
basic_istream::operator>>
非格式化输入
basic_istream::get
basic_istream::peek
basic_istream::unget
basic_istream::putback
basic_istream::getline
basic_istream::ignore
basic_istream::read
basic_istream::readsome
basic_istream::gcount
定位
basic_istream::tellg
basic_istream::seekg
杂项
basic_istream::sync
basic_istream::swap(C++11)
成员类
basic_istream::sentry
非成员函数
operator>>(std::basic_istream)
[编辑]
定义于头文件
extern std::istream cin;
(1)
extern std::wistream wcin;
(2)
全局对象 std::cin 和 std::wcin 控制着来自实现定义类型(派生自 std::streambuf)的流缓冲区的输入,该缓冲区与标准 C 输入流 stdin 相关联。
这些对象保证在类型为 std::ios_base::Init 的对象首次构造期间或之前被初始化,并且可用于具有有序初始化的静态对象的构造函数和析构函数中(只要在定义对象之前包含
除非已发出 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
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
[编辑] 另请参阅
Init
初始化标准流对象 (std::ios_base 的公共成员类) [编辑]
coutwcout
写入标准 C 输出流 stdout(全局对象)[编辑]
stdinstdoutstderr
与输入流关联的 FILE* 类型的表达式与输出流关联的 FILE* 类型的表达式与错误输出流关联的 FILE* 类型的表达式 (宏常量) [编辑]