定义于头文件 
template<

class CharT,
class Traits = std::char_traits

> class basic_stringstream;

(C++11 前)
template<

class CharT,
class Traits = std::char_traits,
class Allocator = std::allocator

> class basic_stringstream;

(C++11 起)

类模板 std::basic_stringstream 实现基于字符串的流上的输入与输出操作。它等效地存储一个 std::basic_string 的实例,并在其上进行输入与输出操作。

在低层,该类实际上包装 std::basic_stringbuf 的未处理字符串设备到 std::basic_iostream 的高层接口中。提供到独有 std::basic_stringbuf 成员的完整接口。

亦为常用字符类型定义二个特化:

类型定义
stringstreambasic_stringstream
wstringstreambasic_stringstream

成员类型

成员类型定义
char_typeCharT
traits_typeTraits ;若 Traits::char_type 不是 CharT 则程序为病式。
int_typeTraits::int_type
pos_typeTraits::pos_type
off_typeTraits::off_type
allocator_typeAllocator (C++11 起)

成员函数

(构造函数)

构造字符串流
(公开成员函数)

operator=

(C++11)

移动字符串流
(公开成员函数)

swap

(C++11)

交换两个字符串流
(公开成员函数)

rdbuf

返回底层未处理的字符串设备对象
(公开成员函数)
字符串操作

str

获取或设置底层字符串设备对象的内容
(公开成员函数)

非成员函数

std::swap(std::basic_istringstream)

(C++11)

特化 std::swap 算法
(函数模板)

继承自 std::basic_istream

成员函数

有格式输入

operator>>

提取带格式数据
(std::basic_istream 的公开成员函数)
无格式输入

get

从流中读并取走(移除类似指针向下一个元素移动)一个字符
(std::basic_istream 的公开成员函数)

peek

仅读出但不取走(不移除类似指针并未移动)一个字符
(std::basic_istream 的公开成员函数)

unget

撤销流中刚取走(移除,类似指针向后退回一个位置)的字符
(std::basic_istream 的公开成员函数)

putback

往输入流中退回一个字符
(std::basic_istream 的公开成员函数)

getline

一直读并取走字符,直至找到给定字符
(std::basic_istream 的公开成员函数)

ignore

读且取走并舍弃字符,直至发现给定字符
(std::basic_istream 的公开成员函数)

read

读并取走一块字符
(std::basic_istream 的公开成员函数)

readsome

读并取走已经可用的字符块
(std::basic_istream 的公开成员函数)

gcount

返回上次无格式输出操作所取走的字符数量
(std::basic_istream 的公开成员函数)
寻位

tellg

返回输入位置指示器
(std::basic_istream 的公开成员函数)

seekg

设置输入位置指示器
(std::basic_istream 的公开成员函数)
杂项

sync

与底层存储设备同步
(std::basic_istream 的公开成员函数)

成员类

sentry

实现为输出操作准备流的基本逻辑
(std::basic_istream 的公开成员类)

继承自 std::basic_ostream

成员函数

有格式输出

operator<<

插入带格式数据
(std::basic_ostream 的公开成员函数)
无格式输出

put

插入字符
(std::basic_ostream 的公开成员函数)

write

插入字符块
(std::basic_ostream 的公开成员函数)
寻位

tellp

返回输出位置指示器
(std::basic_ostream 的公开成员函数)

seekp

设置输出位置指示器
(std::basic_ostream 的公开成员函数)
杂项

flush

与底层存储设备同步
(std::basic_ostream 的公开成员函数)

成员类

sentry

为输出操作实现流准备的基本逻辑
(std::basic_ostream 的公开成员类)

继承自 std::basic_ios

成员类型

成员类型定义
char_typeCharT
traits_typeTraits
int_typeTraits::int_type
pos_typeTraits::pos_type
off_typeTraits::off_type

成员函数

状态函数

good

检查是否没有发生错误,例如是否可执行I/O操作
(std::basic_ios 的公开成员函数)

eof

检查是否到达了文件末尾
(std::basic_ios 的公开成员函数)

fail

检查是否发生了可恢复的错误
(std::basic_ios 的公开成员函数)

bad

检查是否已发生不可恢复的错误
(std::basic_ios 的公开成员函数)

operator!

检查是否有错误发生(fail() 的同义词)
(std::basic_ios 的公开成员函数)

operator void*operator bool

(C++11 前)(C++11 起)

检查是否没有发生错误(!fail()的同义词)
(std::basic_ios 的公开成员函数)

rdstate

返回状态标志
(std::basic_ios 的公开成员函数)

setstate

设置状态标志
(std::basic_ios 的公开成员函数)

clear

修改状态标志
(std::basic_ios 的公开成员函数)
格式化

copyfmt

复制格式化信息
(std::basic_ios 的公开成员函数)

fill

管理填充字符
(std::basic_ios 的公开成员函数)
杂项

exceptions

管理异常掩码
(std::basic_ios 的公开成员函数)

imbue

设置本地环境
(std::basic_ios 的公开成员函数)

rdbuf

管理相关的流缓冲区
(std::basic_ios 的公开成员函数)

tie

管理绑定的流
(std::basic_ios 的公开成员函数)

narrow

窄化字符
(std::basic_ios 的公开成员函数)

widen

拓宽字符
(std::basic_ios 的公开成员函数)

继承自 std::ios_base

成员函数

格式化

flags

管理格式标志
(std::ios_base 的公开成员函数)

setf

设置特定格式标志
(std::ios_base 的公开成员函数)

unsetf

清除特定格式的标志
(std::ios_base 的公开成员函数)

precision

管理浮点操作的精度
(std::ios_base 的公开成员函数)

width

管理域的宽度
(std::ios_base 的公开成员函数)
本地环境

imbue

设置本地环境
(std::ios_base 的公开成员函数)

getloc

返回当前本地环境
(std::ios_base 的公开成员函数)
内部可扩展数组

xalloc

[静态]

返回能安全用作 pword() 和 iword() 下标的程序范围内独有的整数
(std::ios_base 的公开静态成员函数)

iword

如果有必要的话,调整私有存储的大小,并且访问位于提供的下标的long元素
(std::ios_base 的公开成员函数)

pword

若需要则重置私有存储的大小,并访问位于指定下标的 void* 元素
(std::ios_base 的公开成员函数)
杂项

register_callback

注册事件回调函数
(std::ios_base 的公开成员函数)

sync_with_stdio

[静态]

设置C++和C的IO库是否可以互操作
(std::ios_base 的公开静态成员函数)
成员类

failure

流异常
(std::ios_base 的公开成员类)

Init

初始化标准流对象
(std::ios_base 的公开成员类)

成员类型和常量

类型解释

openmode

流打开模式类型

亦定义下列常量:

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

(typedef)

fmtflags

格式化标志类型

亦定义下列常量:

常量解释
dec为整数 I/O 使用十进制底:见 std::dec
oct为整数 I/O 使用八进制底:见 std::oct
hex为整数 I/O 使用十六进制底:见 std::hex
basefielddec|oct|hex 。适用于掩码运算
left左校正(添加填充字符到右):见 std::left
right右校正(添加填充字符到左):见 std::right
internal内部校正(添加填充字符到内部选定点):见 std::internal
adjustfieldleft|right|internal 。适用于掩码运算
scientific用科学记数法生成浮点类型,或若与 fixed 组合则用十六进制记法:见 std::scientific
fixed用定点记法生成浮点类型,或若与 scientific 组合则用十六进制记法:见 std::fixed
floatfieldscientific|fixed 。适用于掩码运算
boolalpha以字母数字格式插入并释出 bool 类型:见 std::boolalpha
showbase生成为整数输出指示数字基底的前缀,货币 I/O 中要求现金指示器:见 std::showbase
showpoint无条件为浮点数输出生成小数点字符:见 std::showpoint
showpos为非负数值输出生成 + 字符,见 std::showpos
skipws在具体输入操作前跳过前导空白符:见 std::skipws
unitbuf在每次输出操作后冲入输出:见 std::unitbuf
uppercase在具体输出的输出操作中以大写等价替换小写字符:见 std::uppercase

(typedef)

iostate

流状态类型

亦定义下列常量:

常量解释
goodbit无错误
badbit不可恢复的流错误
failbit输入/输出操作失败(格式化或提取错误)
eofbit关联的输出序列已抵达文件尾

(typedef)

seekdir

寻位方向类型

亦定义下列常量:

常量解释
beg流的开始
end流的结尾
cur流位置指示器的当前位置

(typedef)

event

指定事件类型
(枚举)

event_callback

回调函数类型
(typedef)