第6章_流_库

1

第6章 流 库

6.1 C 语言为何有自己的I/O系统\r 在C语言中,若要建立结构:\r struct my_struct\r {\r int count ;\r char s[80];\r double balance;\r } cust;

2

没有办法扩展C语言的I/O得到形如\r printf(“%my_struct”,cust);\r 的式子。因为printf只识别预定义类型,没有办法把其功能延伸到新的数据类型上。

3

6.2 C 语言流库的结构

C 流库是用继承方法建立起来的流库的输入输出类库,有两个平行的基类:\r streambuf 和ios.\rstreambuf :strstreambuf,filebuf,conbuf\rios:istream, ostream

4

istream

ostream

iostream

ios

istream_withassign

ostream_withassign

iostream.h

iostream_withassign

5

ios

streambuf

filebuf

fstreambase

fiostreambase

ifstream

fstream

istream

istream

iostream

ofstream

fstream.h

iostream.h

6

C 自动打开4个预定义的流

extern istream_withassign cin;\rextern ostream_withassign cout;\rextern ostream_withassign cerr;\rextern ostream_withassign clog;\r\rcin和cout可以重新定向\rcerr和clog不可以重新定向\rcerr与clog的区别是:\rCerr没有缓冲,所有内容都立即输出。\rClog是缓冲输出,缓冲器满后才输出。 \r

7

6.3 输入和输出

6.3.1 istream\r istream在流库中提供主要的输入操作,是用户使用流库的主要界面之一。这里给出istream的简要介绍,以帮助读 者理解流库的使用。\r\r

8

者理解流库的使用。\r class istream : public ios\r {\r public:\r istream(streambuf *);\r istream