C++ primer 第五版 中文版 练习 10.33

来源:互联网 发布:java opencv图像识别 编辑:程序博客网 时间:2024/05/24 03:38

C++ primer 第五版 中文版 练习 10.33

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

答:

[cpp] view plain copy
  1. /* 
  2. 编写程序,接受三个参数:一个输入文件和两个输出文件的文件名。 
  3. 输入文件保存的应该是整数。使用istream_iterator 读取输入文件。 
  4. 使用ostream_iterator将奇数写入第一个输出文件,每个值后都跟一个空格。 
  5. 将偶数写入第二个输出文件,每个值都独占一行。 
  6. */  
  7.   
  8. #include <iostream>  
  9. #include <iterator>  
  10. #include <vector>  
  11. #include <fstream>  
  12.   
  13. using namespace std;  
  14.   
  15.       
  16. int main(int argc, char ** argv)  
  17. {  
  18.     //提示程序怎么使用  
  19.     if (argc != 4)  
  20.     {  
  21.         cout << "程序使用格式为:本程序名称+空格+输入文件+空格+奇数输出文件名称+空格+偶数输出文件名称" << endl;  
  22.         return 0;  
  23.     }  
  24.     ifstream myifstream(argv[1]);  
  25.     ofstream myofstream1(argv[2]);  
  26.     ofstream myofstream2(argv[3]);  
  27.   
  28.     vector<int> ivect;  
  29.     istream_iterator<int> fin(myifstream), eof;  
  30.     ostream_iterator<int> fout1(myofstream1, " ");  
  31.     ostream_iterator<int> fout2(myofstream2,"\r\n");  
  32.   
  33.     copy(fin, eof, back_inserter(ivect)); //读取文件内的值到vector中  
  34.     for (auto a : ivect)  
  35.     {  
  36.         if (a % 2)  
  37.             fout1 = a; //为奇数输出到奇数文件  
  38.         else  
  39.             fout2 = a; //为偶数输出到偶数文件  
  40.     }  
  41.   
  42.     return 0;  
  43. }  
1 0
原创粉丝点击