Проблема при считывании заголовка .bmp C++

Я пытаюсь считать BITMAPFILEHEADER из .bmp файла, но вместо цифр получаю ASCII символы. Как можно решить данную проблему?

std::string path;
std::ifstream file;

path = "C:\\Users\\user\\Desktop\\Emp.bmp";

file.open(path);

if (!file.is_open())
{
    std::cout << "ERROR";
}
else
{
    char fromfile[14];

    file.read(fromfile, 14);

    std::cout << fromfile;
    file.close();
}

Ответы (1 шт):

Автор решения: Harry

Вы выводите символы. Числа, символы и т.д. — просто вопрос интерпретации данных.

Если вам нужен BITMAPFILEHEADER, то и читайте его, а не строку:

BITMAPFILEHEADER bh;
file.read((char*)&bh, sizeof(bh));

std::cout << "bfType = " << bh.bfType << std::endl;
std::cout << "bfSize = " << bh.bfSize << std::endl;

...

Вы же пытаетесь интерпретировать бинарные данные как строку.

→ Ссылка