【发布时间】:2012-09-17 04:32:44
【问题描述】:
可能重复:
How to read a binary file in c? (video, images, or text)
我正在尝试使用 C 程序读取 bmp file 的内容。我能够阅读内容,但读取的值与我的预期相矛盾。我的代码是:
FILE *fp=NULL;
fp=fopen("C:\\Users\\Saurabh\\Pictures\\nice.bmp","r");
if(fp!=NULL)
{
printf("%c\n",fgetc(fp));
printf("%c\n",fgetc(fp));
printf("%c\n",fgetc(fp));
printf("%c\n",fgetc(fp));
printf("%c\n",fgetc(fp));
printf("%c\n",fgetc(fp));
}
else
printf("Error reading the file");
我在这里只是逐字节阅读,只是为了理解。前两个字节读取BM,这是正确的。接下来的四个字节读取*t。预期值为 40。请参阅format。有人可以解释一下正在发生的事情吗?如果我需要执行一些转换,我该如何获得40 的值。
【问题讨论】:
-
你得到了什么……?如果您的期望值是正确的,我会期望
BM(***或类似的东西。 -
字节 3 到 6 给出文件大小,“所有整数值都以小端格式存储(即最低有效字节在前)。”你能把字节 3-6 的值打印为数字,并检查它是否与文件大小匹配?
-
现在从这里,我如何获取文件大小。如何对四个字节进行缩放以获得单个整数值?
标签: c image image-processing