C++面向程序与对象 谭浩强 清华大学出版社概要1.ppt

C++面向程序与对象 谭浩强 清华大学出版社概要1.ppt

C面向程序与对象谭浩强清华大学出版社概要1

第7章 输入输出流 7.1 C++的输入和输出 7.1.1输入输出的含义 从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。 C++的输入与输出包括三个方面: 标准的输入输出 文件的输入输出 字符串输入输出 7.1.2 C++的I/O对C的发展——类型安全和可扩展性 在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译,因此C++的I/O操作是类型安全(type safe)的。 C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。 7.1.3 C++的输入输出流 输入输出是数据传送的过程,数据如流水一样从一处流向另一处。C++形象地将此过程称为流(stream)。 在C++中,输入输出流被定义为类。C++中的I/O库中的类称为流类。用流类定义的对象称为流对象。 1. iostream类库中有关的类 I/O类库中的继承关系 2. 与iostream类库有关的头文件 iostream fstream strstream stdiostream //用于混合使用C和C++的机制时 iomanip 3. 在iostream头文件中定义的流对象 4. 在iostream头文件中重载运算符 在istream和ostream类中分别有一组成员函数对位移运算符“”和“”进行重载,以便能用它输入输出各种标准数据类型的数据。 7.2标准输出流 标准输出流是流向标准输出设备(显示器)的数据。 7.2.1 cout,cerr和clog流 ostream类定义了三个输出流对象: cout cerr clog 1. cout流对象 cout是输出流类ostream的对象, cout是与标准输出设备连接的输出流,插入运算符向输出流发送字符,cout是数据的目的地,插入运算符将信息送到cout。cout一般与标准输出设备(显示器)连接。 cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已满,都立即输出流中所有的数据,然后插入一个换行符,并刷新流(清空缓冲区)。注意如果插入一个换行符‘\n’,则只输出换行,而不刷新cout流。 2. cerr流对象 cerr流对象是标准出错流,已被指定为与显示器关联,其作用是向标准出错设备输出有关出错信息。 3. clog流对象 clog流对象是标准出错流,已被指定为与显示器关联,其作用是向标准出错设备输出有关出错信息。 clog与cerr的区别:clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出;cerr是不经过缓冲区,直接向显示器上输出有关信息。 7.2.2格式输出 格式输出有两种方法: 使用控制符 使用流对象的有关成员函数 1. 使用控制符控制输出格式 2. 用流对象的成员函数控制输出格式 7.2.3用流成员函数put输出字符 格式:输出流对象.put(ch); 其中ch可以是字符常量或变量。 cout.put(‘a’); 7.3标准输入流 标准输入流是从标准输入设备(键盘)流向程序的数据。 7.3.1 cin流 cin是输入流类istream的对象,该流对象进行提取操作,它从输入流中取出数据,数据从提取运算符流进程序。cin一般与标准输入设备(键盘)连接。 7.3.2用于字符输入的流成员函数 1. 用get函数读入一个字符 2. 用成员函数getline函数读入一行字符 1. 用get函数读入一个字符 格式: (1)字符变量=输入流对象.get( ); (2)输入流对象.get( ch); (3)输入流对象.get( 字符数组或指针,n,终止符); 作用:从输入流中读取n-1个字符,赋给指定的字符数组,如果在读取n-1个字符之前遇到指定的终止字符,则提前结束读取。 2. 用成员函数getline函数读入一行字符 格式: 输入流对象. getline( 字符数组或指针,n,终止符); 注意: 用getline函数从输入流读取字符时,遇到终止标志字符时结束,指针移到该终止标志字符之后,下一个getline函数将从该终止标志的下一个字符开始接着读入。如果用cin.get函数从输入流读取字符时,遇终止标志字符时停止读取,指针不向后移动,仍然停留在原位置。下一次读取时仍从该终止字符开始。这是getline函数和get函数不同之处。 7.3.3 istream类的其他成员函数 1. eof 函数 2. peek函数 3. putback函数 4. ignore函数 1. eof 函数 表示“文件结束”。从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值(表示真),否则为零(假)。 2. peek函数 调用形

文档评论(0)

1亿VIP精品文档

相关文档