本文介绍
C++ IO
标准库的基础知识。参考
C++ Primer P.244
IO |
|
istream( |
提供输入操作。 |
ostream( |
提供输出操作。 |
cin |
读入标准输入的 |
cout |
写到标准输出的 |
cerr |
输出标准错误的 |
>> |
用于从 |
<< |
用于把输出写到 |
getline |
需要分别取 |
l
面向对象的标准库
IO
类型在
3
个独立的头文件中定义:
iostream |
定义读写控制窗口的类型 |
fstream |
定义读写已命名文件的类型 |
sstream |
用于读写存储在内存中的 |
在
fstream
和
sstream
里定义的每种类型都是从
iostream
头文件中定义的相关类型派生而来。
注意:
(1)
国际字符的支持。
每一个
IO
头文件都定义了
char
和
wchar_t
类型的类和标准输入
/
输出对象。
(2) IO
对象不可复制或赋值。
第一个含义:因为只有支持复制的元素类型可以存储在
vector
或其他容器类型里,由于流对象不能复制,因此不能存储在
vector(
或其他
)
容器中,即,不存在存储流对象的
vector
或其他容器。
第二个含义:形参或返回类型也不能为流类型。如果需要传递或返回
IO
对象,则必须传递或返回指向该流对象的指针或引用。并且,一般情况下,如果要传递
IO
对象以便对它进行读写,可用非
const
引用
的方式传递这个流对象,对
IO
对象的读写会改变它的状态,因此引用必须是非
const
的。
l
条件状态
IO |
|
strm::iostate |
机器相关的整型名,由各个 |
strm::badbit |
strm::iostate |
strm::failbit |
strm::iostate |
strm::eofbit |
strm::iostate |
s.eof() |
如果设置了流 |
s.fail() |
如果设置了流 |
s.bad() |
如果设置了流 |
s.good() |
如果流 |
s.clear() |
将流 |
s.clear(flag) |
将流 |
s.setstate(flag) |
将流 |
s.rdstate() |
返回 |
流状态的查询和控制
(
在保证程序的可靠性时经常遇到的问题
)