求助 仨程序怎么分开。。
#include<iostream>#include<fstream>
using namespace std;
void main()
{
ifstream ifile;
cout<<"请输入要打开的文件名:"<<endl;
char name[40];
cin>>name;
strcat(name,".bmp");
ifile.open(name,ios::binary);
cout<<"请输入要存储的文件名:"<<endl;
ofstream ofile;
char name2[40];
cin>>name2;
strcat(name2,".txt");
ofile.open(name2);
if(!ifile)
cout<<"1 fail"<<endl;
else if(!ofile)
cout<<"2 fail"<<endl;
else
{
cout<<"ok"<<endl;
/*从文件中输出所有bmp文件头和信息头*/
unsigned char k;
long int data[100];
for (int i=0;i <54;i++)
{ifile.read((char*)&k,sizeof(k));
data[i]=k;
}
for(int n=0;n<3;n++)
{ cout<<"请选择:1读取数据并存入文件 2判断是否为bmp文件 3判断所储存图片大小"<<endl;
int m;
cin>>m;
switch(m)
{
case 1://读存数据
{
/*文件大小*/
cout<<"文件大小:"<<endl;
ofile<<"文件大小:";
for(int a=5;a>1;a--)
{
cout<<data[a];
ofile<<data[a];
}
cout<<endl;
ofile<<endl;
/*位图数据起始位置*/
cout<<"位图数据起始位置:"<<endl;
ofile<<"位图数据起始位置:";
for(int b=13;b>9;b--)
{
cout<<data[b];
ofile<<data[b];
}
cout<<endl;
ofile<<endl;
/*位图数据宽*/
cout<<"位图数据宽:"<<endl;
ofile<<"位图数据宽:";
for(int c=21;c>17;c--)
{
cout<<data[c];
ofile<<data[c];
}
cout<<endl;
ofile<<endl;
/*位图数据高*/
cout<<"位图数据高:"<<endl;
ofile<<"位图数据高:";
for(int d=25;d>21;d--)
{
cout<<data[d];
ofile<<data[d];
}
cout<<endl;
ofile<<endl;
/*每个像素占用的位数*/
cout<<"每个像素占用的位数:"<<endl;
ofile<<"每个像素占用的位数:";
for(int e=29;e>27;e--)
{
cout<<data[e];
ofile<<data[e];
}
cout<<endl;
ofile<<endl;
/*位图的压缩类型*/
cout<<"位图的压缩类型:"<<endl;
ofile<<"位图的压缩类型:";
for(int f=30;f<34;f++)
{
cout<<data[f];
ofile<<data[f];
}
cout<<endl;
ofile<<endl;
break;}
case 2://判断是否为bmp
{
if(data[0]==66&&data[1]==77)
cout<<"该文件是bmp文件"<<endl;
else
cout<<"该文件不是bmp文件"<<endl;
break;
}
case 3://判断文件大小biSizeImage=(biWidth*biBitCount+31)/32*4*biHeight
{
int biSizeImage,biWidth,biBitCount,biHeight;
biWidth=data[18]+data[19]*100+data[20]*10000+data[21]*1000000;
biBitCount=data[28]+data[29]*100;
biHeight=data[22]+data[23]*100+data[24]*10000+data[25]*1000000;
biSizeImage=(biWidth*biBitCount+31)/32*4*biHeight;
cout<<"biWidth:"<<biWidth<<endl;
cout<<"biBitCount:"<<biBitCount<<endl;
cout<<"biHeight:"<<biHeight<<endl;
cout<<"biSizeImage:"<<biSizeImage<<endl;
break;
}
}
}
}
ifile.close();
ofile.close();
}
打开.bmp文件,访问位图文件的文件头和信息头,得到该位图文件的下列数据:整个位图文件大小、位图数据起始位置、位图数据的宽和高、每个像素占用的位数、位图的压缩类型;显示上述信息并存入文本文件。
用C++判断一个文件是否为bmp文件
判断一个BMP文件中所存储的图片为多大?。
这仨题。。怎么分成一个个的啊