如何使用ostream_iterator<>将结果输出到新文件?

时间:2014-04-05 05:16:08

标签: c++

我是一个关于C ++的新鲜事,我遇到了一个问题,我想使用以下代码(来自Cplusplus),但是要将我的结果输出到新文件或使用向量来保存它(我更喜欢使用向量), 我该怎么办? 谢谢!

// ostream_iterator example
#include <iostream>     // std::cout
#include <iterator>     // std::ostream_iterator
#include <vector>       // std::vector
#include <algorithm>    // std::copy

int main () {
  std::vector<int> myvector;
  for (int i=1; i<10; ++i) myvector.push_back(i*10);

  std::ostream_iterator<int> out_it (std::cout,", ");
  std::copy ( myvector.begin(), myvector.end(), out_it );
  return 0;
}

1 个答案:

答案 0 :(得分:4)

您可以使用std::ofstream代替std::cout

这是您修改的代码,用于将输出写入文件。

// ostream_iterator example
#include <iostream>     // std::cout
#include <iterator>     // std::ostream_iterator
#include <vector>       // std::vector
#include <algorithm>    // std::copy
#include <fstream>      // std::ofstream

int main () {
  std::vector<int> myvector;
  for (int i=1; i<10; ++i) myvector.push_back(i*10);

  std::ofstream of("myoutput.txt");

  std::ostream_iterator<int> out_it (of,", ");
  std::copy ( myvector.begin(), myvector.end(), out_it );
  return 0;
}

要将输出复制到vector,请使用back_inserter

std::vector<int> foo;
std::copy (myvector.begin(), myvector.end(), std::back_inserter(foo));

您也可以直接复制:

std::vector<int> foo = myvector;