我需要用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吗?
答案 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.
}
}
}