流迭代器的使用

10.29 编写程序,使用流迭代器读取一个文本文件,存入一个vector中的string里。

#include<iostream>
#include<vector>
#include<fstream>
#include<string>
#include<iterator>
using namespace std;

int main()
{
    ifstream in("1.txt");
    istream_iterator<string> in_iter(in),eof;
    ostream_iterator<string> out_iter(cout," ");
    vector<string> vec;
    while(in_iter!=eof)
        vec.push_back(*in_iter++);
    for(auto v:vec)
        out_iter=v;
    cout<<endl;
    return 0;
}

 

10.30 使用流迭代器、sort和copy从标准输入读取一个整数序列,将其排序,并将结果写到标准输出。

#include<iostream>
#include<vector>
#include<fstream>
#include<iterator>
#include<algorithm>
using namespace std;

int main()
{
    istream_iterator<int> in_iter(cin),eof;
    ostream_iterator<int> out_iter(cout," ");
    vector<int> vec;
    while(in_iter!=eof)
        vec.push_back(*in_iter++);
    sort(vec.begin(),vec.end());
    copy(vec.begin(),vec.end(),out_iter);
    cout<<endl;
    return 0;
}

 

10.33 编写程序,接受三个参数:一个输入文件和两个输出文件的文件名。输入文件保存的应该是整数。使用istream_iterator读取文本输入文件。使用ostream_iterator将奇数写入第一个输出文件,每个值之后都跟一个空格。将偶数写入第二个输出文件,每个值都独占一行。

#include<iostream>
#include<vector>
#include<fstream>
#include<iterator>
using namespace std;
int main()
{
    ifstream in("1.txt");
    ofstream out1("2.txt");
    ofstream out2("3.txt");
    istream_iterator<int> in_iter(in),eof;
    ostream_iterator<int> out_iter1(out1," ");
    ostream_iterator<int> out_iter2(out2,"\n");
    vector<int> vec;
    while(in_iter!=eof)
        vec.push_back(*in_iter++);
    for(auto v:vec)
    {
        if(v%2)
          out_iter1=v;
        else
          out_iter2=v;
    }
    cout<<endl;
    return 0;
}

 

posted @ 2014-08-17 19:57  Jessica程序猿  阅读(440)  评论(0编辑  收藏  举报