Come faccio a farlo usando gli algoritmi STL?copy_n o fino a eof?
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);
Note buf.size() < 2048
.
ad es. cosa succederà se faccio quanto segue e il file è più piccolo di 2048 byte?
std::copy_n(std::istreambuf_iterator<char>(file), 2048, std::back_inserter(buf));
Cosa succede se il file è più grande? Il resto viene scartato o è necessario un iteratore all'inizio della parte che è ancora da leggere? – pmr
Ifstream viene scartato una volta letto il numero richiesto di byte. – ronag
Questo apre la possibilità di avere un iteratore separato invece di un algoritmo. – pmr