我會如何使用STL算法做到這一點?copy_n或直到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);
注意buf.size() < 2048
。
例如如果我做了以下事情會發生什麼,並且文件小於2048字節?
std::copy_n(std::istreambuf_iterator<char>(file), 2048, std::back_inserter(buf));
如果文件較大,會發生什麼情況?其餘的部分是否被丟棄,或者是否需要迭代器到仍然需要讀取的部分的開頭? – pmr
一旦讀取了所需數量的字節,就會丟棄ifstream。 – ronag
這樣就可以有一個單獨的迭代器而不是算法。 – pmr