现在的位置: 首页 > 综合 > 正文

The C++ IO Library

2013年10月30日 ⁄ 综合 ⁄ 共 2109字 ⁄ 字号 评论关闭

本文介绍
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

 

流状态的查询和控制
(

在保证程序的可靠性时经常遇到的问题
)










抱歉!评论已关闭.