Namespaces
Variants

std:: basic_istream

From cppreference.net
< cpp ‎ | io
定义于头文件 <istream>
template <

class CharT,
class Traits = std:: char_traits < CharT >

> class basic_istream : virtual public std:: basic_ios < CharT, Traits >

类模板 basic_istream 为字符流的高层级输入操作提供支持。支持的操作包括格式化输入(如整型值或空白符分隔的字符及字符串)和非格式化输入(如原始字符及字符数组)。该功能通过基类 basic_ios 访问的底层 basic_streambuf 类所提供的接口实现。在大多数实现中, basic_istream 唯一非继承的数据成员是由 basic_istream::gcount() 返回的值。

cpp/io/ios base cpp/io/basic ios std-basic istream-inheritance.svg

继承关系图

提供了多种常见字符类型的类型定义:

定义于头文件 <istream>
类型 定义
std::istream std :: basic_istream < char >
std::wistream std :: basic_istream < wchar_t >

目录

全局对象

标准库提供了两个全局 basic_istream 对象。

定义于头文件 <iostream>
从标准C输入流 stdin 读取
(全局对象)

成员类型

成员类型 定义
char_type CharT
traits_type Traits ;若 Traits::char_type 不是 CharT 则程序非良构。
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

成员函数

构造对象
(公开成员函数)
[virtual]
析构对象
(虚公开成员函数)
(C++11)
从另一个 basic_istream 移动赋值
(受保护成员函数)
格式化输入
提取格式化数据
(公开成员函数)
非格式化输入
提取字符
(公开成员函数)
读取下一个字符但不提取
(公开成员函数)
取消提取字符
(公开成员函数)
将字符放回输入流
(公开成员函数)
提取字符直到找到指定字符
(公开成员函数)
提取并丢弃字符直到找到指定字符
(公开成员函数)
提取字符块
(公开成员函数)
提取已可用的字符块
(公开成员函数)
返回上次非格式化输入操作提取的字符数
(公开成员函数)
定位
返回输入位置指示器
(公开成员函数)
设置输入位置指示器
(公开成员函数)
杂项
与底层存储设备同步
(公开成员函数)
(C++11)
交换流对象(关联缓冲区除外)
(受保护成员函数)

成员类

实现流输入操作准备的基础逻辑
(公开成员类)

非成员函数

提取字符和字符数组
(函数模板)

继承自 std:: basic_ios

成员类型

成员类型 定义
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

成员函数

状态函数
检查是否未发生错误(即 I/O 操作可用)
( std::basic_ios<CharT,Traits> 的公开成员函数)
检查是否已到达文件末尾
( std::basic_ios<CharT,Traits> 的公开成员函数)
检查是否已发生错误
( std::basic_ios<CharT,Traits> 的公开成员函数)
检查是否已发生不可恢复的错误
( std::basic_ios<CharT,Traits> 的公开成员函数)
检查是否已发生错误( fail() 的同义词)
( std::basic_ios<CharT,Traits> 的公开成员函数)
检查是否未发生错误( ! fail() 的同义词)
( std::basic_ios<CharT,Traits> 的公开成员函数)
返回状态标志
( std::basic_ios<CharT,Traits> 的公开成员函数)
设置状态标志
( std::basic_ios<CharT,Traits> 的公开成员函数)
修改状态标志
( std::basic_ios<CharT,Traits> 的公开成员函数)
格式化
复制格式化信息
( std::basic_ios<CharT,Traits> 的公开成员函数)
管理填充字符
( std::basic_ios<CharT,Traits> 的公开成员函数)
杂项
管理异常掩码
( std::basic_ios<CharT,Traits> 的公开成员函数)
设置本地化环境
( std::basic_ios<CharT,Traits> 的公开成员函数)
管理关联的流缓冲区
( std::basic_ios<CharT,Traits> 的公开成员函数)
管理绑定的流
( std::basic_ios<CharT,Traits> 的公开成员函数)
窄化字符
( std::basic_ios<CharT,Traits> 的公开成员函数)
宽化字符
( std::basic_ios<CharT,Traits> 的公开成员函数)

继承自 std:: ios_base

成员函数

格式化
管理格式标志
( std::ios_base 的公开成员函数)
设置特定格式标志
( std::ios_base 的公开成员函数)
清除特定格式标志
( std::ios_base 的公开成员函数)
管理浮点运算的十进制精度
( std::ios_base 的公开成员函数)
管理字段宽度
( std::ios_base 的公开成员函数)
本地化
设置本地化环境
( std::ios_base 的公开成员函数)
返回当前本地化环境
( std::ios_base 的公开成员函数)
内部可扩展数组
[static]
返回程序范围内唯一的整数,可安全用作 pword() iword() 的索引
( std::ios_base 的公开静态成员函数)
必要时调整私有存储大小并访问指定索引处的 long 元素
( std::ios_base 的公开成员函数)
必要时调整私有存储大小并访问指定索引处的 void * 元素
( std::ios_base 的公开成员函数)
杂项
注册事件回调函数
( std::ios_base 的公开成员函数)
设置 C++ 与 C I/O 库是否可互操作
( std::ios_base 的公开静态成员函数)
成员类
流异常
( std::ios_base 的公开成员类)
初始化标准流对象
( std::ios_base 的公开成员类)

成员类型与常量

类型 说明
流打开模式类型

同时定义以下常量:

常量 说明
app 每次写入前寻位到流末尾
binary 二进制模式 打开
in 为读而打开
out 为写而打开
trunc 打开时舍弃流的内容
ate 打开后立即寻位到流末尾