读取代码如下://///定义
BYTE* m_Lbei;
m_Lbei = new BYTE[IMAGE_SIZE];////代码
FILE* fp;fp = fopen("c:\\test.txt", "r+");fread(m_Lbei, sizeof(char), 256, fp); //256这个读取不全我想把整个文件内容读取m_Lbei中,记得有什么begin和end组合。

解决方案 »

  1.   

    while(!feof(fp)
    {
        fread(m_Lbei, sizeof(char), 256, fp);
    }
      

  2.   

    BYTE* tmpbei;
    tmpbei = m_Lbei;while(!feof(fp)
    {
      int len = fread(m_Lbei, sizeof(char), 256, fp);
      tmpbei += len;//偏移读取的长度,下次继续往后写!
    }
      

  3.   


       FILE *fp;
       char m_Lbei[300];
       if( fopen_s( &fp, "c:\test.txt", "r+t" ) == 0 )
       {
          // Attempt to read in 25 characters 
          fread( m_Lbei, sizeof( char ), 256, fp );      fclose( fp );
       }
      

  4.   


    恩,我调试看确实是在循环读取。不过当程序退出循环体后,m_Lbei只显示少部分数据。我理解是显示读取的全部数据,不知道对不?
      

  5.   

    不用循环去读,首先用ftell函数得到文件的长度,然后再一次性全部读到缓冲区中即可FILE *fp;
    char buf[1000];//也可以根据文件的长度值动态开辟
    int b;
    fp=fopen("c:\\test.txt","rb");
    fseek(fp,0,SEEK_END);
    b=ftell(p);
    fseek(fp,0,SEEK_SET);
    fread(buf,b,1,fp);
    fclose(fp);