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," "); 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; }