使用istream_iterator读取N个字符

时间:2018-06-03 09:54:59

标签: c++ vector iterator

我有一个文件,想要在向量中存储前N个字符。目前我读了所有的字符,只取了前N个字符。

from scipy.sparse import coo_matrix
coo = coo_matrix((3, 4), dtype = "int8")

有没有办法只使用istream_iterator读取N个字符?

1 个答案:

答案 0 :(得分:1)

如果您真的想使用std::istream_iterator,解决方案可能是:

void foo() {
  std::ifstream stream;
  // open stream

  std::vector<unsigned char> v;

  std::copy_if(std::istream_iterator<unsigned char>(stream),
               std::istream_iterator<unsigned char>(),
               std::back_inserter(v),
               [](unsigned char) {
                 static constexpr int N = 3;
                 static int i = 0;
                 return ++i <= N;
               });
}