D:\CC\test.bmp 创建这个文件之后编译后运行这段程序就行

我是硬件工程师
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ FILE *fp;
int i,x,y; //x,y是坐标
int x1; //真实坐标的偏移量
char wenjiantou[54];
char point[3];
if((fp=fopen("D:\\CC\\test.bmp","rb+"))==NULL) // 打开磁盘文件
{
printf("can't open file!\n");
exit(0);
}
printf("要输出点的坐标是(用空格分开x y):");
scanf ("%d %d",&x,&y);
fread(&wenjiantou,1,54,fp); ///把文件头54个字节放到数组里
x1=wenjiantou[10]; //提取偏移量给x1
fread(&point,3,1,fp+(3*x*y+x1)); //读取指定位置3个字节数据
for (i=0;i<3;i++)
printf ("%d ",point[i]); //输出点的buf
return 0;
fclose(fp);// 关闭文件
}
程序代码:
//盛杰瑞办公设备实验室
//输入x,y坐标,输出改点图像rgb值
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ FILE *fp;
int i,x,y; //x,y是坐标
int x1; //真实坐标的偏移量
int y1; //x坐标宽度
unsigned char wenjiantou[54];
unsigned char point[3];
if((fp=fopen("D:\\CC\\test.bmp","rb+"))==NULL) // 打开磁盘文件
{
printf("can't open file!\n");
exit(0);
}
printf("要输出点的坐标是(用空格分开x y):");
scanf ("%d %d",&x,&y);
fread(&wenjiantou,1,54,fp); ///把文件头54个字节放到数组里
x1=wenjiantou[10]; //提取偏移量给x1
y1=wenjiantou[18]; //提取宽度给y1
for (i=0;i<3;i++)
fread(&point[i],1,1,fp+(3*x+y1*y+x1)+i); //读取指定位置3个字节数据
for (i=0;i<3;i++)
printf ("%d ",point[i]); //输出点的buf
for (i=0;i<90;i++) //调试用
printf ("\n%x ",*(fp+i)); //调试用
return 0;
fclose(fp);// 关闭文件
} //改了一些问题,还是存在问题,输出值不对
[此贴子已经被作者于2017-2-4 16:59编辑过]
