第10章输入输出流讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++定义的I/O类库中每一个类都可称作流或流类, 一个流类所定义的对象也时常称为流。
流具有方向性,与输入设备(键盘)相联系的流就 称为输入流,与输出设备(显示器)相联系的流就称为 输出流,与输入输出设备(硬盘)相联系的流就称为输 入输出流。
4
10.1.2 I/O流类库结构
根基类
输入流类
文件流基类
cerr不能被缓冲,cerr流已被指定为与显示器关联,它的 输出总是直接传达到标准输出设备上,是不能重定向的。
错误信息是写到cerr的项。 例如:
cerr << “Error” << “\n”; 使用该语句,则错误信息“Error”总能保证在显示器上 显示出来。
9
(3) clog流对象
它是console log的缩写,clog流对象也是标准错 误流。
C++的输入输出主要包含以下三个方面内容:
(1) 标准I/O :对标准输入设备和标准输出设备的输 入输出。
(2) 文件I/O:对外存磁盘上文件的输入输出。
(3) 串I/O:对内存中指定的字符串存储空间的输入 输出。
3
10.1.1 I/O流的概念
所谓流,这是一个形象的称谓,它是指数据在传送 过程中,数据如流水一般从一对象流向另一对象。也就 是信息从外部输入设备(如键盘和磁盘)向计算机内部 (即内存)输入和从内部向外部输出设备(如显示器和 磁盘)输出的过程。
ostream中提供专用于输出单个字符的成员函数 put: put成员函数原型为: ostream &put(char); 其参数是字符型数据,可以是字符的ASCII码,也可 以是整数或整型表达式。 其作用为:将字符或以该整数为ASCII码的字符显示 在屏幕上。 例如:
cout.put(‘A’); //结果是在屏幕上显示一个字符A cout.put(65); //结果是在屏幕上同样显示一个字符 A,因为65是‘A’的 ASCⅡ 码
11
3.用控制符控制输出格式
控制符 endl ends flush ws dec hex oct setbase(int n) setfill(char c) setprecision(it n) setw(int n) setiosflags(格式标志)
表10-1 输入输出控制符
作用 输出时插入换行符并刷新流 输出时在字符串后插入结束符NULL 刷新缓冲区 暂时略去前导的空白字符(空格、tab键、换行) 设置整数的基数为10 (默认数制) 设置整数的基数为16 设置整数的基数为8 设置数制转换基数为n(n只能是8、10、16三者之一) 设置填充字符c.(c可以是字符常量或字符变量) 设置浮点精度为n (设置小数位数,包括小数点) 设置字段宽度为n位 设置特定格式,具体格式标志作用见下表10-3
它的作用和cout相同,都是在终端显示器上显示 出错信息。
clog是不能重定向的,但是可以被缓冲。 clog中的信息存放在缓冲区中,缓冲区满后或遇 endl时向显示器输出。注意这一点与cerr的不同。在 某些系统中,由于缓冲,使用clog代替cerr可以改进 显示速度。
10
2. 用流成员函数输出字符
字符串流基类
输出流类
输入文件流类
输出文件流类
输出字符串流类
输入字符串流类 输入输出文件流类
输入输出流类
输入输出字符串流 类
图 10-1 ios 类派生层次 5
C++系统中的I/O类库,其所有类被包含在iostream.h, fstream.h和strstrea.h中。
这三个系统头文件中,各头文件包含的类如下:
(1) iostream.h包含有:ios, iostream, istream, ostream, iostream_withassign, istream_withassign, ostream_withassign等。
(2) fstream.h包含有:fstream, ifstream, ofstream 和fstreambase,以及iostream.h中的所有类。
用“cout<<”输出基本类型的数据时,可以不必考虑数 据是什么类型,系统会判断。
也可以自己构造输出流对象。例如:ostream obj;
8
(2) cerr流对象
cerr是console error的缩写,意为“在控制台(显示器)显 示出错信息”,cerr流对象是标准错误流。
cerr的作用是向标准错误设备(standard error device)输 出有关出错信息。
(3) strstream.h包含有:strstream, istrstream, ostrstream和strstreambase,以及iostream.h中的所有类。
6
10.2 I /O标准流
10.2.1 标准流对象
C++提供了4个预定义的标准流对象,cout 、cerr 、clog 和 cin ,其中:
7
10.2.2 标准输出流
ostream类定义了3个输出流对象,即cout,cerr,clog。 分述如下:
1.cout,cerr,clog
(1) cout流对象
cout是console output的缩写,意为在控制台(终端显示 器)的输出。
cout不是C++预定义的关键字,它是ostream流类的对象, cout流中的数据是用流插入,cout流是容纳数据的载体,它 并不是一个运算符。
第10章 输入输出流
内蒙古科技大学信息学院
10.1
I/O流的概念及流类库结构
10.2
I /O标准流
10.3
插入和提取运算符的重载
10.4
文件的输入输出
10.5 字符串流操作
10.6
本章知识点小结
2Βιβλιοθήκη Baidu
10.1 I/O流的概念及流类库结构
在C++语言中,输入是指数据从输入文件传送到程 序的过程,输出是指数据从程序传送到输出文件的过程。
cin 是 istream 类的对象,用来处理标准输入,即程序 运行起来后从键盘输入;
cout 是 ostream 类的对象,用来处理标准输出,即把 程序运行的结果输出到显示器上;
cerr 和 clog 都是 ostream 类的对象,用来处理标准出 错信息,并将信息显示在显示器上。
在这4个标准流对象中,除了 cerr 不支持缓冲外,其余3 个都带有缓冲区。
流具有方向性,与输入设备(键盘)相联系的流就 称为输入流,与输出设备(显示器)相联系的流就称为 输出流,与输入输出设备(硬盘)相联系的流就称为输 入输出流。
4
10.1.2 I/O流类库结构
根基类
输入流类
文件流基类
cerr不能被缓冲,cerr流已被指定为与显示器关联,它的 输出总是直接传达到标准输出设备上,是不能重定向的。
错误信息是写到cerr的项。 例如:
cerr << “Error” << “\n”; 使用该语句,则错误信息“Error”总能保证在显示器上 显示出来。
9
(3) clog流对象
它是console log的缩写,clog流对象也是标准错 误流。
C++的输入输出主要包含以下三个方面内容:
(1) 标准I/O :对标准输入设备和标准输出设备的输 入输出。
(2) 文件I/O:对外存磁盘上文件的输入输出。
(3) 串I/O:对内存中指定的字符串存储空间的输入 输出。
3
10.1.1 I/O流的概念
所谓流,这是一个形象的称谓,它是指数据在传送 过程中,数据如流水一般从一对象流向另一对象。也就 是信息从外部输入设备(如键盘和磁盘)向计算机内部 (即内存)输入和从内部向外部输出设备(如显示器和 磁盘)输出的过程。
ostream中提供专用于输出单个字符的成员函数 put: put成员函数原型为: ostream &put(char); 其参数是字符型数据,可以是字符的ASCII码,也可 以是整数或整型表达式。 其作用为:将字符或以该整数为ASCII码的字符显示 在屏幕上。 例如:
cout.put(‘A’); //结果是在屏幕上显示一个字符A cout.put(65); //结果是在屏幕上同样显示一个字符 A,因为65是‘A’的 ASCⅡ 码
11
3.用控制符控制输出格式
控制符 endl ends flush ws dec hex oct setbase(int n) setfill(char c) setprecision(it n) setw(int n) setiosflags(格式标志)
表10-1 输入输出控制符
作用 输出时插入换行符并刷新流 输出时在字符串后插入结束符NULL 刷新缓冲区 暂时略去前导的空白字符(空格、tab键、换行) 设置整数的基数为10 (默认数制) 设置整数的基数为16 设置整数的基数为8 设置数制转换基数为n(n只能是8、10、16三者之一) 设置填充字符c.(c可以是字符常量或字符变量) 设置浮点精度为n (设置小数位数,包括小数点) 设置字段宽度为n位 设置特定格式,具体格式标志作用见下表10-3
它的作用和cout相同,都是在终端显示器上显示 出错信息。
clog是不能重定向的,但是可以被缓冲。 clog中的信息存放在缓冲区中,缓冲区满后或遇 endl时向显示器输出。注意这一点与cerr的不同。在 某些系统中,由于缓冲,使用clog代替cerr可以改进 显示速度。
10
2. 用流成员函数输出字符
字符串流基类
输出流类
输入文件流类
输出文件流类
输出字符串流类
输入字符串流类 输入输出文件流类
输入输出流类
输入输出字符串流 类
图 10-1 ios 类派生层次 5
C++系统中的I/O类库,其所有类被包含在iostream.h, fstream.h和strstrea.h中。
这三个系统头文件中,各头文件包含的类如下:
(1) iostream.h包含有:ios, iostream, istream, ostream, iostream_withassign, istream_withassign, ostream_withassign等。
(2) fstream.h包含有:fstream, ifstream, ofstream 和fstreambase,以及iostream.h中的所有类。
用“cout<<”输出基本类型的数据时,可以不必考虑数 据是什么类型,系统会判断。
也可以自己构造输出流对象。例如:ostream obj;
8
(2) cerr流对象
cerr是console error的缩写,意为“在控制台(显示器)显 示出错信息”,cerr流对象是标准错误流。
cerr的作用是向标准错误设备(standard error device)输 出有关出错信息。
(3) strstream.h包含有:strstream, istrstream, ostrstream和strstreambase,以及iostream.h中的所有类。
6
10.2 I /O标准流
10.2.1 标准流对象
C++提供了4个预定义的标准流对象,cout 、cerr 、clog 和 cin ,其中:
7
10.2.2 标准输出流
ostream类定义了3个输出流对象,即cout,cerr,clog。 分述如下:
1.cout,cerr,clog
(1) cout流对象
cout是console output的缩写,意为在控制台(终端显示 器)的输出。
cout不是C++预定义的关键字,它是ostream流类的对象, cout流中的数据是用流插入,cout流是容纳数据的载体,它 并不是一个运算符。
第10章 输入输出流
内蒙古科技大学信息学院
10.1
I/O流的概念及流类库结构
10.2
I /O标准流
10.3
插入和提取运算符的重载
10.4
文件的输入输出
10.5 字符串流操作
10.6
本章知识点小结
2Βιβλιοθήκη Baidu
10.1 I/O流的概念及流类库结构
在C++语言中,输入是指数据从输入文件传送到程 序的过程,输出是指数据从程序传送到输出文件的过程。
cin 是 istream 类的对象,用来处理标准输入,即程序 运行起来后从键盘输入;
cout 是 ostream 类的对象,用来处理标准输出,即把 程序运行的结果输出到显示器上;
cerr 和 clog 都是 ostream 类的对象,用来处理标准出 错信息,并将信息显示在显示器上。
在这4个标准流对象中,除了 cerr 不支持缓冲外,其余3 个都带有缓冲区。