читать двоичные байты из файла JPG - PullRequest
0 голосов
/ 18 июня 2011

Мне нужно прочитать байты из файла JPG на C ++, поэтому напишите следующие коды:

    ifstream in("1.jpg"ios::binary);
    while(!in.eof())
{
char ch = in.get();
}

как вы знаете, jpg-файл состоит из 256 разностных символов, которые мы можем сохранить, это повторяется в формате arr. Но проблема в том, что этот код, который я написал, читает символы в форме Unicode, поэтому он состоит из 9256 разностей char.how могу ли я прочитать из 1.jpg, что это не был Unicode?

1 Ответ

2 голосов
/ 18 июня 2011

Функция get считывает неформатированные данные из файла, просто отбрасывает прочитанный символ как int.Вы видите данные, прочитанные из файла, как отличающиеся от фактических данных в файле?Если у вас есть проблема в другом месте кода, вы должны предоставить больше.

В качестве альтернативы вы можете прочитать фрагменты неформатированных данных, используя read.

int main()
{
    std::ifstream in("1.jpg", std::ios::binary);

    char buffer[1024];

    while (in)
    {
        in.read(buffer, sizeof(buffer));

        if (in.gcount() > 0)
        {
            // read in.gcount() chars from the file
            // process them here.
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...