| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:求助 仨程序怎么分开。。
取消只看楼主 加入收藏
HBHGIMU
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-8-31
结帖率:0
收藏
 问题点数:0 回复次数:0 
求助 仨程序怎么分开。。
#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文件中所存储的图片为多大?。



这仨题。。怎么分成一个个的啊
搜索更多相关主题的帖子: include 
2012-08-31 22:18
快速回复:求助 仨程序怎么分开。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017727 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved