从jpg文件中读取二进制字节

时间:2011-06-18 16:06:16

标签: c++ file-io

我需要用c ++中的jpg文件读取字节,所以写下这些代码:

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

如你所知,jpg文件由256个不同的字符组成,我们可以在aa arr中保存它的重复。但问题是我写的这个代码以unicode的形式读取字符,所以它由9256差异char.how组成我能从1.jpg读到它不是unicode吗?

1 个答案:

答案 0 :(得分:2)

get函数从文件中读取未格式化的数据,它只是将读取的char转换为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.
        }
    }
}