Из бинарного файла читаются символы переноса
Делаю упаковщик различных изображений. Но при чтении происходят непонятные действия, связанные с тем, что читаются только первые 3 символа. Дальше различные /x4/x6 и до вероятно завершения строки. Как мне проигнорировать это и прочитать весь файл?
std::ifstream file(file_path, std::ios::binary);
if (file)
{
file.seekg(0, std::ios::end);
std::streamsize size = file.tellg();
file.seekg(0, std::ios::beg);
char* data = reinterpret_cast<char*>(calloc(size, sizeof(char)));
if (data == nullptr) return;
if (!file.read(data, size))
{
log("Error reading file: ", file_path);
free(data);
return;
}
}
Ответы (1 шт):
Автор решения: Алексей Морозов
→ Ссылка
Проблему решил, сохранив специальные символы конца строки в векторе:
std::vector<char> buffer((std::istreambuf_iterator<char>(file)), (std::istreambuf_iterator<char>()));