清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 第9章C+的/0流类库
第9章 C++的I/O流类库
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 9.1C++的/0流类库的功能 基类的ⅣO流操作 2.文件流的操作 3.字符串流的操作 9.2屏幕输出(写操作) 1.使用预定义的插入符(<<) 参见例91,例9.2] 2.使用成员函数pu(写一个字符。参见例94 3.使用成员函数 write(写一个字符串。参见例95、[例
9. 1 C++的I/O流类库的功能 1. 基类的I/O流操作 2. 文件流的操作 3. 字符串流的操作 9. 2 屏幕输出(写操作) 1. 使用预定义的插入符(<<) 参见[例9. 1], [例9. 2]。 2. 使用成员函数put( )写一个字符。参见[例9. 4]。 3. 使用成员函数write( )写一个字符串。参见[例9. 5]、[例 9. 6]
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 9.3键盘输入(读操作) 1.使用预定义的提取符(>>)。参见[例97]、[例98]。 2.使用成员函数get)读一个字符。参见[例99]。 3.使用成员函数 getline(读一行字符。参见[例910]。 4.使用成员函数read(读若干个字符。参见[例911]。 9.4插入符和提取符的重载 根据需用,用户可对插入符和提取符进行重载来支持新的数据 类型的输出和输入。 参见[例913]、[例914]
9. 3 键盘输入(读操作) 1. 使用预定义的提取符(>>)。参见[例9. 7]、[例9. 8]。 2. 使用成员函数get( )读一个字符。参见[例9. 9]。 3. 使用成员函数getline( )读一行字符。参见[例9. 10]。 4. 使用成员函数read( )读若干个字符。参见[例9. 11]。 9. 4 插入符和提取符的重载 根据需用,用户可对插入符和提取符进行重载来支持新的数据 类型的输出和输入。 参见[例9. 13]、[例9. 14]
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 9.5格式化输出 1.使用标志字和成员函数进行格式化输出 (1)控制格式的标志位。(见教材第307页表91) 定义标志位的组合(静态变量): basefield delloct hex adjustfield leftrightinternal floatfield seientificfixed (2)设置标志字的成员函数 long flags long flags(long) long setf(long setbits, long field) long setf(long long unset(long)
9. 5 格式化输出 1. 使用标志字和成员函数进行格式化输出 (1) 控制格式的标志位。(见教材第307页表9. 1) 定义标志位的组合(静态变量): basefield del|oct|hex adjustfield left|right|internal floatfield seientific|fixed (2) 设置标志字的成员函数 long flags( ) long flags(long) long setf(long setbits,long field) long setf(long) long unsetf(long)
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS (3)控制输出格式和成员函数 int width(int width(int) int fill(int fill(char) int precision int precision(int) 参见[例9.16]。 2.使用操作子进行格式输出 系统ⅣO流类库中所定义的操作子见教材第310页表92,它们 被放在 iomanip. h文件中。 参见[例917
(3) 控制输出格式和成员函数 int width( )int width(int) int fill( )int fill(char) int precision( )int precision(int) 参见[例9. 16]。 2. 使用操作子进行格式输出 系统I/O流类库中所定义的操作子见教材第310页表9. 2,它们 被放在iomanip.h文件中。 参见[例9. 17]
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 9.6磁盘文件操作 1.磁盘文件打开关闭操作 (1)打开文件的两种方法 方法一: fstream〈流对象名〉; 〈流对象名〉.open("〈文件名〉",〈方式〉); 或者 fstream〈流对象名〉,open("〈文件名〉",〈方式〉) 其中,〈方式〉见教材第312页表93
9. 6 磁盘文件操作 1. 磁盘文件打开关闭操作 (1) 打开文件的两种方法 方法一: fstream 〈流对象名〉; 〈流对象名〉.open(″〈文件名〉″ ,〈方式〉); 或者 fstream〈流对象名〉.open(″〈文件名〉″ ,〈方式〉) 其中,〈方式〉见教材第312页表9. 3
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 方法二: ①打开写文件 ofstream〈流对象名〉; 〈流对象名〉.0pen("”〈文件名)"); 或者 ofstream〈流对象名〉.open(”〈文件名〉"); ②打开读文件 ifstream〈流对象名〉; 流对象名〉.0pem("〈文件名〉"); 或者 ifstream〈流对象名〉,open("〈文件名〉"); (2)关闭文件方法 〈流对象名〉. close(;
方法二: ① 打开写文件 ofstream 〈流对象名〉; 〈流对象名〉.open(″〈文件名〉″); 或者 ofstream〈流对象名〉.open(″〈文件名〉″); ② 打开读文件 ifstream〈流对象名〉; 〈流对象名〉.open(″〈文件名〉″); 或者 ifstream 〈流对象名〉.open(″〈文件名〉″); (2) 关闭文件方法 〈流对象名〉.close( );
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 2.文本文件的操作 参见[例9.19]、[例920]、[例9.22]。 3.二进制文件的操作 参见[例9.23]。 4.随机文件操作 C++不仅可以顺序访问文件,还可以随机访问。为实现对文 件的随机访问,ⅣO流类库提供了定位读指针和定位写指针 的成员函数
2. 文本文件的操作 参见[例9. 19]、[例9. 20]、[例9. 22]。 3. 二进制文件的操作 参见[例9. 23]。 4. 随机文件操作 C++不仅可以顺序访问文件,还可以随机访问。为实现对文 件的随机访问,I/O流类库提供了定位读指针和定位写指针 的成员函数
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS (1)定位读指针的成员函数 istream& istream:sekg(〈流中位置〉); istream& istream∴sekg(〈偏移量〉,〈参照位置〉) long istream .teng(; 其中,〈流中位置〉和〈偏移量〉都是long型量,用字节数 表示。〈参照位置〉有如下几种: cur=1相对于当前指针位置 beg=0相对于流的开始位置 end=2相对于流的结尾位置
(1) 定位读指针的成员函数 istream & istream ∷seekg(〈流中位置〉); istream & istream ∷seekg(〈偏移量〉,〈参照位置〉); long istream ∷tellg( ); 其中,〈流中位置〉和〈偏移量〉都是long型量,用字节数 表示。〈参照位置〉有如下几种: cur=1相对于当前指针位置 beg=0相对于流的开始位置 end=2相对于流的结尾位置
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS (2)定位写指针的成员函数 ostream& ostream:sekp(〈流中位置〉); ostream& ostream:sekp(〈偏移量〉,〈参照位置〉); long stream∴: tello; (参数说明同上) 参见[例924]、[例925]。 5.有关文件的其他操作 参见[例9.26]、[例927]
(2) 定位写指针的成员函数 ostream & ostream ∷seekp(〈流中位置〉); ostream & ostream ∷seekp(〈偏移量〉,〈参照位置〉); long ostream ∷tellp( ); (参数说明同上) 参见[例9. 24]、[例9. 25]。 5. 有关文件的其他操作 参见[例9. 26]、[例9. 27]