#include<math.h>
#include <iomanip.h> 
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
int bmpWidth;
int bmpHeight;
RGBQUAD *pColorTable;int biBitCount;
bool readBmp(char *bmpName) 
{
    FILE *fp=fopen(bmpName,"rb");//    if(fp==0) return 0;
    fseek(fp, sizeof(BITMAPFILEHEADER),0);
    BITMAPINFOHEADER head;      fread(&head, sizeof(BITMAPINFOHEADER), 1,fp);    bmpWidth = head.biWidth;    bmpHeight = head.biHeight;    biBitCount = head.biBitCount;    int lineByte=(bmpWidth * biBitCount/8+3)/4*4;    if(biBitCount==8)
 {        pColorTable=new RGBQUAD[256];        fread(pColorTable,sizeof(RGBQUAD),256,fp); }    pBmpBuf=new unsigned char[lineByte * bmpHeight];    fread(pBmpBuf,1,lineByte * bmpHeight,fp);    fclose(fp);    return 1;
}
bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height,              int biBitCount, RGBQUAD *pColorTable){    if(!imgBuf)        return 0;    int colorTablesize=0;    if(biBitCount==8)        colorTablesize=1024;    int lineByte=(width * biBitCount/8+3)/4*4;    FILE *fp=fopen(bmpName,"wb");    if(fp==0) return 0;    BITMAPFILEHEADER fileHead;    fileHead.bfType = 0x4D42;    fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)        + colorTablesize + lineByte*height;    fileHead.bfReserved1 = 0;    fileHead.bfReserved2 = 0;    fileHead.bfOffBits=54+colorTablesize;    fwrite(&fileHead, sizeof(BITMAPFILEHEADER),1, fp);    BITMAPINFOHEADER head;     head.biBitCount=biBitCount;    head.biClrImportant=0;    head.biClrUsed=0;    head.biCompression=0;    head.biHeight=height;    head.biPlanes=1;    head.biSize=40;    head.biSizeImage=lineByte*height;    head.biWidth=width;    head.biXPelsPerMeter=0;    head.biYPelsPerMeter=0;    fwrite(&head, sizeof(BITMAPINFOHEADER),1, fp);    if(biBitCount==8)        fwrite(pColorTable, sizeof(RGBQUAD),256, fp);    fwrite(imgBuf, height*lineByte, 1, fp);    fclose(fp);    return 1;}void xiang_su_du_qu(){    char readPath[]="nv.BMP";    readBmp(readPath);    cout<<"width="<<bmpWidth<<" height="<<bmpHeight<<" biBitCount="<<biBitCount<<endl;    int lineByte=(bmpWidth*biBitCount/8+3)/4*4;
    int m=0,n=0,count_xiang_su=0;
 
 ofstream outfile("图像像素.txt",ios::in|ios::trunc);    if(biBitCount==8)
 {                              int L1=0;
    int hang=63;
    int lie=0;
    //int L2=0;
          //int fen_ge=8;
    for(int fen_ge_hang=0;fen_ge_hang<8;fen_ge_hang++)
    { 
     for(int fen_ge_lie=0;fen_ge_lie<8;fen_ge_lie++)
     { 
      //--------------------------------------------
      for(L1=hang;L1>hang-8;L1--)
      {
        for(int L2=lie;L2<lie+8;L2++)
        {
        m=*(pBmpBuf+L1*lineByte+L2);
                             outfile<<m<<" ";
                 count_xiang_su++;
                if(count_xiang_su%8==0)
       {
            outfile<<endl;
       }
        }
      }
      //---------------------------------------------
     hang=63-fen_ge_hang*8;
     lie+=8;
     }
     hang-=8;
     lie=0;
    }
 }    //double xiang_su[2048];
 //ofstream outfile("xiang_su_zhi.txt",ios::in|ios::trunc);
 if(!outfile)
 {
  cout<<"open error!"<<endl;
   exit(1);
 }
    else if(biBitCount==24){//彩色图像        for(int i=0;i<bmpHeight;i++)
  {            for(int j=0;j<bmpWidth;j++)
   {                 for(int k=0;k<3;k++)
    {
     //*(pBmpBuf+i*lineByte+j*3+k)-=40;
                    m=*(pBmpBuf+i*lineByte+j*3+k);
        outfile<<m<<" ";
     count_xiang_su++;
     if(count_xiang_su%8==0)
     {
      outfile<<endl;
     }
     //n++;
    }
              n++;
            }
        }
  cout<<"总的像素个素为:"<<n<<endl;
  cout<<"----------------------------------------------------"<<endl;    }
    
    
    char writePath[]="nvcpy.BMP";    saveBmp(writePath, pBmpBuf, bmpWidth, bmpHeight, biBitCount, pColorTable);    delete []pBmpBuf;    if(biBitCount==8)        delete []pColorTable;}
void main()
{
    xiang_su_du_qu();

解决方案 »

  1.   

     错误信息
    --------------------Configuration: 000 - Win32 Debug--------------------
    Compiling resources...
    Compiling...
    StdAfx.cpp
    Compiling...
    000.cpp
    MainFrm.cpp
    000Doc.cpp
    000View.cpp
    0000.cpp
    e:\000\0000.cpp(228) : fatal error C1010: unexpected end of file while looking for precompiled header directive
    Generating Code...
    执行 cl.exe 时出错.000.exe - 1 error(s), 0 warning(s)
      

  2.   

    既然有这条信息。。何不google一下。  基本上 加上 stdafx 头文件就好了
    #include <stdafx.h> 
      

  3.   

    把你的代码拷贝到2003工程  加了个pBmpBuf的定义   其他没动   编译通过
      

  4.   

    这个一般是没包含文件头引起的,也可以在文件上点击右键=》setting=>c++=>precomplied header选择not using ....来不使用文件头