7.1.3 C++输入输出流 5、iostream头文件中定义的4种流对象 对象 含义 设备 对应的类 C语言对应文件 cin 标准输入流 键盘 istream_withassign stdin cout 标准输出流 屏幕 ostream_withassign stdout cerr 标准错误流 屏幕 ostream_withassign stderr clog 标准错误流 屏幕 ostream_withassign stderr 说明 >cin是istream的派生类istream_withassign的对象,它是从键 盘输入数据流到内存; >cout是ostream的派生类ostream_withassign的对象,它从 内存输出数据流到显示器; >cerr和clog相似,均为向显示器输出出错信息。 10
10 5、iostream 头文件中定义的4种流对象 stderr 标准错误流 屏幕 ostream_withassign clog stderr 标准错误流 屏幕 ostream_withassign cerr stdout 标准输出流 屏幕 ostream_withassign cout stdin 标准输入流 键盘 istream_withassign cin 对象 含义 设备 对应的类 C语言对应文件 说明 ➢ cin 是 istream 的派生类 istream_withassign 的对象,它是从键 盘输入数据流到内存; ➢ cout 是 ostream 的派生类 ostream_withassign 的对象,它从 内存输出数据流到显示器; ➢ cerr 和 clog 相似,均为向显示器输出出错信息 。 7.1.3 C++输入输出流
7.1.3 C++输入输出流 6、在iostream头文件中重载运算符 iostream头文件中对位移运算符“<<”和“>>” 进行了重载,使之用作对标准数据的输入/输出。 所以要使用>>、<<进行标准数据的输入/输出, 必须用#include命令把iostream包含到程序中。 在头文件iostream中声明的istream和ostream类中, 分别有一组成员函数对位移运算符“<<”和“>>”进行重 载,以便能用它输入/输出各种标准数据类型的数据。 11
11 6、在iostream头文件中重载运算符 iostream头文件中对位移运算符“<<”和“>>” 进行了重载,使之用作对标准数据的输入/输出。 所以要使用>>、<<进行标准数据的输入/输出, 必须用#include命令把iostream包含到程序中。 在头文件iostream中声明的istream和ostream类中, 分别有一组成员函数对位移运算符“<<”和“>>”进行重 载,以便能用它输入/输出各种标准数据类型的数据。 7.1.3 C++输入输出流
7.1.3 C++输入输出流 6、在iostream头文件中重载运算符 ostream operator<<(int ) ostream operator<<(float); >ostream operator<<(char); >ostream operator<<(char*):/用于向输出流插入 一个字符串数据 例如:cout<<“C++"; 相当于 cout.operator<<(C++"); 说明:”C++”的值是其首字节地址,是字符型指针 (char*)类型,因此选择调用最后一个运算符重载函数。 12
12 6、在iostream头文件中重载运算符 ➢ ostream operator<<(int ); ➢ ostream operator<<(float); ➢ ostream operator<<(char); ➢ ostream operator<<(char *); //用于向输出流插入 一个字符串数据 例 如 : cout<<“C++”; // 相 当 于 cout.operator<<(“C++”); 说明:”C++”的值是其首字节地址,是字符型指针 (char *)类型,因此选择调用最后一个运算符重载函数。 7.1.3 C++输入输出流
7.2; 标准输出流 标准输出流是流向标准输出设备(显示器)的数据。 7.2.1 cout、cerr和clog流 ostream类定义了3个输出流对象,即cout、 cerr、clog 1、cout流对象: ① cout不是C++预定义关键字 ② 用“cout<<”输出基本类型数据时,不必考虑数据 是什么类型系统会自动判断其类型,并选择调用匹 配的运算符重载函数。 如:cout<<<<10<<“C++”<<f 系统分别调用什么重载函数呢? 13
13 7.2 标准输出流 标准输出流是流向标准输出设备(显示器)的数据。 7.2.1 cout、cerr和clog 流 ostream 类定义了3个输出流对象,即 cout、 cerr 、clog 1、cout 流对象: ① cout不是C++ 预定义关键字 ② 用“cout<<”输出基本类型数据时,不必考虑数据 是什么类型系统会自动判断其类型,并选择调用匹 配的运算符重载函数。 如:cout<<‘I’<<10<<“C++”<<f; 系统分别调用什么重载函数呢?
7.2.1cout、cerr和clog流 1、cout流对象: ③cout流在内存中对应开辟了一个缓冲区,用来存 放流中的数据,当向cout流插入一个endl时,不论缓冲 区是否已满,都立即输出流中所有数据,然后插入一个 换行符,并刷新流 ④(重复内容)在iostream中只对”<<和“>>” 运算符用于标准类型数据的输入输出进行了重载。如果 要将“<<”和“>>”用于输出用户声明的类型的数据, 必须对“<<”和“>>”进行重载。 14
14 1、cout 流对象: ③cout流在内存中对应开辟了一个缓冲区,用来存 放流中的数据,当向cout流插入一个endl时,不论缓冲 区是否已满,都立即输出流中所有数据,然后插入一个 换行符,并刷新流. ④(重复内容)在iostream中只对“<<”和“>>” 运算符用于标准类型数据的输入输出进行了重载。如果 要将“<<”和“>>”用于输出用户声明的类型的数据, 必须对“<<”和“>>”进行重载。 7.2.1 cout、cerr和clog 流