Как читать файл в байтах и сохранить в буфер
Здравствуйте меня интересует вопрос как я могу прочитать файл например zip архив в байтах и держать его в буфере для дальнейших действий. Как мне лучше это сделать?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, если уж вы хотите читать файл в память полностью, то можно примерно так:
vector<char> readFile(const char* name)
{
vector<char> buf;
ifstream in(name,ios::binary);
if (!in.is_open()) return buf;
auto sz = in.seekg(0,ios::end).tellg();
buf.resize(sz);
in.seekg(0,ios::beg).read(buf.data(),sz);
return buf;
}
int main(int argc, const char * argv[])
{
vector<char> buf = readFile("data");
ofstream out("out",ios::binary);
out.write(buf.data(),buf.size());
}
Неплохо дописать в функцию проверки корректности выполнения всех операций.
Сравните потом файлы data и out, должны быть одинаковы...