The C++ IO Library

本文介绍 C++ IO 标准库的基础知识。参考 C++ Primer P.244

 

IO 标准库提供的多种工具

istream( 输入流 ) 类型

提供输入操作。

ostream( 输出流 ) 类型

提供输出操作。

cin

读入标准输入的 istream 对象。

cout

写到标准输出的 ostream 对象。

cerr

输出标准错误的 ostream 对象。 cerr 常用于程序错误信息。

>> 操作符

用于从 istream 对象中读入输入。

<< 操作符

用于把输出写到 ostream 对象中。

getline 函数

需要分别取 istream 类型和 string 类型的两个引用形参,其功能是从 istream 对象读取一个单词,然后写入 string 对象中。

 

l       面向对象的标准库

IO 类型在 3 个独立的头文件中定义:

iostream 

定义读写控制窗口的类型

fstream 

定义读写已命名文件的类型

sstream 

用于读写存储在内存中的 string 对象

fstream sstream 里定义的每种类型都是从 iostream 头文件中定义的相关类型派生而来。

注意:

(1) 国际字符的支持。

每一个 IO 头文件都定义了 char wchar_t 类型的类和标准输入 / 输出对象。

(2) IO 对象不可复制或赋值。

第一个含义:因为只有支持复制的元素类型可以存储在 vector 或其他容器类型里,由于流对象不能复制,因此不能存储在 vector( 或其他 ) 容器中,即,不存在存储流对象的 vector 或其他容器。

第二个含义:形参或返回类型也不能为流类型。如果需要传递或返回 IO 对象,则必须传递或返回指向该流对象的指针或引用。并且,一般情况下,如果要传递 IO 对象以便对它进行读写,可用 const 引用 的方式传递这个流对象,对 IO 对象的读写会改变它的状态,因此引用必须是非 const 的。

l       条件状态

IO 标准库的条件状态

strm::iostate

机器相关的整型名,由各个 iostream 类定义,用于定义条件状态

strm::badbit

strm::iostate 类型的值,用于指出被破坏的流

strm::failbit

strm::iostate 类型的值, 用于指出失败的 IO 操作

strm::eofbit

strm::iostate 类型的值,用于指出流已经到达文件结束符

s.eof()

如果设置了流 s eofbit 值,则该函数返回 true

s.fail()

如果设置了流 s failbit 值,则该函数返回 true

s.bad()

如果设置了流 s badbit 值,则该函数返回 true

s.good()

如果流 s 处于有效状态,则该函数返回 true

s.clear()

将流 s 所有 状态值都重设为有效状态

s.clear(flag)

将流 s 中的某个 指定条件状态设置为有效。 flag 的类型是 strm::iostate

s.setstate(flag)

将流 s 添加 指定条件。 flag 的类型是 strm::iostate

s.rdstate()

返回 s 的当前条件,返回值类型为 strm::iostate

 

流状态的查询和控制 ( 在保证程序的可靠性时经常遇到的问题 )




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值