c++11 标准模板(STL)(std::basic_stringstream)(一)

这篇具有很好参考价值的文章主要介绍了c++11 标准模板(STL)(std::basic_stringstream)(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义于头文件 <sstream>
template<

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

> class basic_stringstream;
(C++11 前)
template<

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

> class basic_stringstream;
(C++11 起)

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

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

c++11 标准模板(STL)(std::basic_stringstream)(一),c++,标准库模板,实现高层字符串流输入/输出操作,stringstream,字符操作

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

类型 定义
stringstream basic_stringstream<char>
wstringstream basic_stringstream<wchar_t>

 文章来源地址https://www.toymoban.com/news/detail-686025.html

成员类型

成员类型 定义
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
allocator_type Allocator (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<CharT,Traits> 的公开成员函数)
无格式输入

get

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

peek

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

unget

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

putback

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

getline

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

ignore

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

read

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

readsome

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

gcount

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

tellg

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

seekg

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

sync

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

成员类

sentry

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

继承自 std::basic_ostream

成员函数

有格式输出

operator<<

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

put

插入字符
(std::basic_ostream<CharT,Traits> 的公开成员函数)

write

插入字符块
(std::basic_ostream<CharT,Traits> 的公开成员函数)
寻位

tellp

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

seekp

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

flush

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

成员类

sentry

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

 

继承自 std::basic_ios

成员类型

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

成员函数

状态函数

good

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

eof

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

fail

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

bad

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

operator!

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

operator void*operator bool

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

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

rdstate

返回状态标志
(std::basic_ios<CharT,Traits> 的公开成员函数)

setstate

设置状态标志
(std::basic_ios<CharT,Traits> 的公开成员函数)

clear

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

copyfmt

复制格式化信息
(std::basic_ios<CharT,Traits> 的公开成员函数)

fill

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

exceptions

管理异常掩码
(std::basic_ios<CharT,Traits> 的公开成员函数)

imbue

设置本地环境
(std::basic_ios<CharT,Traits> 的公开成员函数)

rdbuf

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

tie

管理绑定的流
(std::basic_ios<CharT,Traits> 的公开成员函数)

narrow

窄化字符
(std::basic_ios<CharT,Traits> 的公开成员函数)

widen

拓宽字符
(std::basic_ios<CharT,Traits> 的公开成员函数)

继承自 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
basefield dec|oct|hex 。适用于掩码运算
left 左校正(添加填充字符到右):见 std::left
right 右校正(添加填充字符到左):见 std::right
internal 内部校正(添加填充字符到内部选定点):见 std::internal
adjustfield left|right|internal 。适用于掩码运算
scientific 用科学记数法生成浮点类型,或若与 fixed 组合则用十六进制记法:见 std::scientific
fixed 用定点记法生成浮点类型,或若与 scientific 组合则用十六进制记法:见 std::fixed
floatfield scientific|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)

 

到了这里,关于c++11 标准模板(STL)(std::basic_stringstream)(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++11 标准模板(STL)(std::basic_istream)(三)

    template     class CharT,     class Traits = std::char_traitsCharT class basic_istream : virtual public std::basic_iosCharT, Traits  类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的输入(例如整数值或空白符分隔的字符与字符串)和无格式输入(例如未处理字符和字符数组)

    2024年02月13日
    浏览(37)
  • c++11 标准模板(STL)(std::bitset)(四)

    template std::size_t N class bitset;  类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集,并将它与字符串和整数相互转换。 bitset 满足 可复制构造 (CopyConstructible) 及 可复制赋值 (CopyAssignable) 的要求。 模板形参 N - 要为 bitset 分配存储的位数 成员类型 refer

    2024年02月08日
    浏览(40)
  • c++11 标准模板(STL)(std::bitset)(三)

    template std::size_t N class bitset;  类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集,并将它与字符串和整数相互转换。 bitset 满足 可复制构造 (CopyConstructible) 及 可复制赋值 (CopyAssignable) 的要求。 模板形参 N - 要为 bitset 分配存储的位数 成员类型 refer

    2024年02月08日
    浏览(46)
  • c++11 标准模板(STL)(std::queue)(五)

    template     class T,     class Container = std::dequeT class queue; std::queue 类是容器适配器,它给予程序员队列的功能——尤其是 FIFO (先进先出)数据结构。 类模板表现为底层容器的包装器——只提供特定的函数集合。 queue 在底层容器尾端推入元素,从首端弹出元素。 template class

    2023年04月21日
    浏览(79)
  • c++ 11标准模板(STL) std::vector (二)

    template     class T,     class Allocator = std::allocatorT class vector; (1) namespace pmr {     template class T     using vector = std::vectorT, std::pmr::polymorphic_allocatorT; } (2) (C++17 起) 1) std::vector 是封装动态数组的顺序容器。 2) std::pmr::vector 是使用多态分配器的模板别名。 元素相继存储,这意味着不

    2024年02月02日
    浏览(52)
  • c++11 标准模板(STL)(std::priority_queue)(四)

    template     class T,     class Container = std::vectorT,     class Compare = std::lesstypename Container::value_type class priority_queue; priority_queue 是容器适配器,它提供常数时间的(默认)最大元素查找,对数代价的插入与释出。 可用用户提供的 Compare 更改顺序,例如,用 std::greaterT 将导致最小元

    2024年02月01日
    浏览(43)
  • c++11 标准模板(STL)(std::unordered_multimap)(九)

    template     class Key,     class T,     class Hash = std::hashKey,     class KeyEqual = std::equal_toKey,     class Allocator = std::allocator std::pairconst Key, T class unordered_multimap; (1) (C++11 起) namespace pmr {     template class Key, class T,               class Hash = std::hashKey,               class Pred = std::equa

    2023年04月09日
    浏览(37)
  • c++标准模板(STL)(std::array)(三)

    template     class T,     std::size_t N struct array; (C++11 起   std::array 是封装固定大小数组的容器。 此容器是一个聚合类型,其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数组,它不会自动退化成 T* 。它能作为聚合类型聚合初始化,只要

    2024年02月02日
    浏览(47)
  • C++ 编译错误std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >的两种解决办法

    目录 1,错误描述 2,解决办法 3,一种特殊情况 C++程序编译阶段有个常见的错误,std::__cxx11::basic_***,可能是string,list等,也许程序在其他环境完成编译,在运行环境报错,也许是正在编译阶段报错。 简单来说,这个错误的原因是因为C++不同版本对string、list的定义不同。比

    2024年02月10日
    浏览(36)
  • 解决 undefined reference to cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>,....

    在使用opencv时候可能会遇到 undefined reference to cv::imread(std::__cxx11::basic_stringchar, std::char_traitschar, std::allocatorchar const, int)\\\' 其主旨原因是使用的函数版本和引用的库函数版本不一至,要确保使用的函数和引用的库函数版本一致。 1、如何知道函数版本和引用的是否一样 1.1使用nm对

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包