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

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

定义于头文件 <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() 所返回的值。

c++11 标准模板(STL)(std::basic_istream)(一),C++标准库模板(STL)-输入/输出库,c++,标准库模板,basic_istream,提供字符流上的高层输入支持,输入输出

 

它对常用字符类型定义了二个具体类:

定义于头文件 <istream>

类型 定义
istream basic_istream<char>
wistream basic_istream<wchar_t>

全局对象

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

定义于头文件 <iostream>

cinwcin

从标准 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

成员函数

(构造函数)

构造对象
(公开成员函数)

(析构函数)

[虚]

析构对象
(虚公开成员函数)

operator=

(C++11)

从另一 basic_istream 移动赋值
(受保护成员函数)
带格式的输入

operator>>

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

get

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

peek

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

unget

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

putback

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

getline

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

ignore

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

read

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

readsome

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

gcount

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

tellg

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

seekg

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

sync

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

swap

(C++11)

交换流对象,除了关联的缓冲区
(受保护成员函数)

成员类

sentry

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

非成员函数

operator>>(std::basic_istream)

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

继承自 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文章来源地址https://www.toymoban.com/news/detail-534070.html

回调函数类型
(typedef)

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

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

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

相关文章

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

    template     class CharT,     class Traits = std::char_traitsCharT class basic_stringstream; (C++11 前) template     class CharT,     class Traits = std::char_traitsCharT,     class Allocator = std::allocatorCharT class basic_stringstream; (C++11 起) 类模板 std::basic_stringstream 实现基于字符串的流上的输入与输出操作。它等效

    2024年02月10日
    浏览(38)
  • 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日
    浏览(56)
  • c++11 标准模板(STL)(std::queue)(五)

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

    2023年04月21日
    浏览(80)
  • 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::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日
    浏览(38)
  • 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日
    浏览(45)
  • 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日
    浏览(48)
  • std::cin C++标准输入流

    用了那么久的c++,都没有深入去学习一下c++的标准输入流(cin),标准输出流的(cout)的用法,一般只是简单的使用去获取一个字符串或者几个整型输入。但是发现如果遇到了比较复杂的输入,这简单的三板斧就不够用了,需要考虑空白符(空格,tab,换行符等)的影响。而c++又

    2024年02月08日
    浏览(62)
  • 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日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包