听你说的好像是文本文件,可以用CStdioFile::ReadString读一行,都10次就到了:)

解决方案 »

  1.   

    我只好这样了:
    CFile pf;
    int nlines;
    pf.open()
    while(fgets()!=NULL){  nlines++}  //得到总行数
    //这里再将指针移到开始.
    if (nlines <10)  {
     //总行数小于10
    }
    else  //>10
    {
      while(fgets()!=NULL)
       {
         i++;
         if(i>nlines-10) break;
    }
    }
    //这样就得到了指在倒数10行位置的文件指针
    //不过,太烦了吧,谁有好的方法
      

  2.   

    to iProgram:
     hehe,但是文件的总行数我不是已知的呀,要不也就很容易了.
      

  3.   

    好象文件没有向前读的方法
    可以这样吧:
    大约分配一块内存,比如1024bytes
    读文件最后1024bytes,从后向前找10个'\n'就可以了,不够就再读1024bytes...
      

  4.   

    "to iProgram:
     hehe,但是文件的总行数我不是已知的呀,要不也就很容易了."既然如此,ReadString到文件尾,得到行数Count,再ReadString
    Count -10 次不就得了
      

  5.   

    呵呵,我想我的方法是比较好的,
    如果文件有1G呢,别说不会,有些log文件比这大多了
    linux下有个叫tail的工具是做这事的吧,非常有用的工具
    我没看代码,不过估计方法差不多