输入输出迭代子的用法

输入输出迭代子

可以将标准输入对象cin组装成输入流迭代子(istream_iterator),也可以将标准输出对象组装成输出流迭代子(ostream_iterator),

以此来完成输入输出的操作。

输入流迭代器:

定义方法:istream_iterator<要从流中读取的数据类型> 迭代器名(绑定的流); //可以先不绑定流

例如:std::istream_iterator<int> inputInt(cin);

输出流迭代器:

定义方法:ostream_iterator<要从流中读取的数据类型>  迭代器名(绑定的流,元素分隔符);  //输出流迭代器必须绑定流!

例如:std::ostream_iterator<int> outputInt(cout , "\n"); // 绑定流对象cout,元素之间分隔符为换行 ,有点类似于java中的printfln(),

实现了自动换行。

也可以这样定义:std::ostream_iterator<int> outputInt(cout);  元素分隔符不是必须的,但是这样就不能自动换行了

下面是一个使用的例子:

#include <iostream>
using namespace std;
#include <iterator>

int main()
{
	cout<<"Enter two integers: ";
	//创建一个输入流迭代器
	std::istream_iterator<int> inputInt(cin);
	int num1 = *inputInt;	//从输入流中读取一个整数
	++inputInt;			//移动迭代器指向下一个整数
	int num2 = *inputInt;	//从输入流中读取下一个整数

	cout<<"The sum si: ";
	//创建一个输出流迭代器
	std::ostream_iterator<int> outputInt(cout,"\n");	
	*outputInt = num1 + num2;
	return 0;
}


使用时要注意的几点:

1.要使用istream_iterator对象和ostream_iterator对象,必须包含头文件iterator;

2.组装后的输入输出流迭代器只能读取指定数据类型的数据,否则就会抛出异常;

3.可以通过*操作符读取标准输入流中的内容,因为istream_iterator模板对*操作符进行了重载;

4.通过++运算符可以将迭代器移动到下一个输入数据处。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值