//11.18.cpp
//使用istream_iterator对象从标准输入读入一系列整数
//使用ostream_iterator对象将其中的奇数写到一个文件中
//并在每个写入的值后面加一个空格
//同样使用ostream_iterator对象将偶数写到第二个文件
//每个写入的值都存放在单独的行中
#include<iostream>
#include<fstream>
#include<iterator>
#include<algorithm>
using namespace std;
int main()
{
//打开输出文件流并关联到相应文件
ofstream oddFile("oddfile.dat");
ofstream evenFile("evenfile.dat");
//打开文件失败
if(!oddFile||!evenFile)
{
cerr<<"Can not open output file!"<<endl;
return EXIT_FAILURE;
}
cout<<"Enter some integers:(Ctrl-Z to end)"<<endl;
istream_iterator<int> inIter(cin),eof;
ostream_iterator<int> outoddIter(oddFile," ");
ostream_iterator<int> outevenIter(evenFile,"\n");
//读入整数直至鱼遇到eof,将读入数据写入文件流中
//并将相应迭代器加1
while(inIter!=eof)
{
if(*inIter%2!=0)//读入的是奇数
{
*outoddIter=*inIter;
++outoddIter;
}
else //读入的是偶数
{
*outevenIter=*inIter;
++outevenIter;
}
++inIter;
}
//关闭文件
oddFile.close();
evenFile.close();
return 0;
}