Как прочитать с файла бинарные данные в вектор чаров с++
Мне нужно прочитать с файла бинарные данные, по этому строка для этого не очень подходит, с вектором unsigned чаров в данном случае работать удобнее. Можно ли прочитать файл в вектор чаров не по 1 байту а сразу, как в строку?
Ответы (2 шт):
Автор решения: Barracudach
→ Ссылка
bool ReadFileToMemory(const std::string file_path, std::vector<uint8_t>* out_buffer)
{
std::ifstream file_ifstream(file_path, std::ios::binary);
if (!file_ifstream)
return false;
out_buffer->assign((std::istreambuf_iterator<char>(file_ifstream)), std::istreambuf_iterator<char>());
file_ifstream.close();
return true;
}
Автор решения: Mikhailo
→ Ссылка
Можно вот так:
vector<unsigned char> readFile(const char* name) {
ifstream in(name, ios::binary);
in.seekg(0, ios::end);
size_t sz = in.tellg();
in.seekg(0);
vector<unsigned char> v(sz);
in.read((char*)v.data(), sz);
return v;
}
Все проверки, что файл есть, открылся и так далее - допишите сами.