Как читать файл в байтах и сохранить в буфер

Здравствуйте меня интересует вопрос как я могу прочитать файл например 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, должны быть одинаковы...

→ Ссылка