C++流类库、流的输入输出

C++流类库

流类库

c++语言中为不同类型数据的标准输入和输出定义了专门的类型,类库中主要有ios、istream、ostream、iostream、ifstream、ofstream、fstream、istrstream、ostrstream和strstream等类。

ios为根基类,它直接派生4个类,输入流类istream、输出流类ostream、文件流基类fstreambase和字符串流基类strstreambase。
输入文件流类ifstream同时继承了输入流类和文件流基类。
输出文件流类ofstream同时继承了输出流类和文件流基类。
输入字符串流类istrstream同时继承了输入流类和字符串流基类。
输出字符串流类ostrstream同时继承了输出流类和字符串流基类。
输入/输出流类iostream同时继承了输入流类和输出流类。
输入/输出文件流类fstream同时继承了输入/输出流类和文件流基类。
输入/输出字符串流类strstream同时继承了输入/输出流类和字符串流基类。

类库关系图如图所示:

声明:
关于流类库的概念知识总结于清华大学出版社c++教材。
类库关系图是我自己用wps画的,因为教程书上的关系图错了,借用时注意版权问题

流类库的使用

c++系统中的I/O标准类,都定义在iostream.h、fstream.h和strstream.h这3个头文件中,各头文件包含的类如下:

进行标准I/O操作时使用iostream.h头文件,它包含ios、iostream、istream和ostream等类。
进行文件I/O操作时使用fstream.h头文件,它包含fstream、ifstream、ofstream和fstreambase等类。
进行字符串I/O操作时使用fstream.h头文件,它包含strstream、istrstream、ostrstream、strstreambase和iostream等类。

要进行什么样的操作,只需要引入头文件即可。
某些编译器可能识别不了这种头文件,比如dev c++,可以把后缀.h去掉。

流的输入输出

下面以流的输出做一个示范。
源代码:

#include<iostream>
#include<strstream>			//字符串流头文件
using namespace std;
int main(){
	
	char c[]="123456";		//定义字符串
	
	istrstream s1(c);		//定义字符串输入流s1,将字符串c注入s1
	cout<<s1<<endl;;		
	
	int i;	
	s1>>i;		//将s1流注入int型i,将字符串转换为整型数字
	cout<<i<<endl;
	
	istrstream s2(c,3);		//定义字符串输入流s2,将字符串c的前3位注入s1
	int j;
	s2>>j;		//将s2流注入int型j,将字符串转换为整型数字
	cout<<j<<endl;
	
	cout<<i+j<<endl;
	
	return 0;
} 

结果图:
strstream
需要注意的是,单纯地输出流对象是错误地,必须将流注入某个对象才可。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值