copy_n или until eof?

Как бы я сделал это, используя алгоритмы STL?

std::ifstream file(filename);

std::vector<unsigned char> buf;
for(auto file_it = std::istreambuf_iterator<char>(file); file_it != std::istreambuf_iterator<char>() && buf.size() < 2048; ++file_it)
    buf.push_back(*file_it);

Обратите внимание buf.size() < 2048.

например, что произойдет, если я сделаю следующее, а файл будет меньше 2048 байт?

std::copy_n(std::istreambuf_iterator<char>(file), 2048, std::back_inserter(buf));
7
задан ronag 4 December 2011 в 23:32
поделиться