none
怎么判断文件尾部 RRS feed

  • 问题

  • 文本文件有很多行,每一行都有 "\r\n"

    读文件只读了一行是怎么回事? 怎么可以读到文件末尾? 

    ifstream filea("his.txt",ios::in);
     const int LINE_LENGTH=100;
     char str[LINE_LENGTH];
     char str1[LINE_LENGTH];
     memset(str1,0,LINE_LENGTH);
     memset(str,0,LINE_LENGTH);
     strcpy(str1,reff);
     while(filea)                       //读文件只读了一行就跳出了,本意是除非i=0,不然一直getline读文件知道末尾
     {
      filea.getline(str,LINE_LENGTH);
      int i=strcmp(str1,str);
      memset(str,0,LINE_LENGTH);
      memset(str1,0,LINE_LENGTH);

      if(i=0)
       {
         filea.close();
         return TRUE;

       }
     }



    2012年5月30日 14:46

答案

  • ifstream filea("his.txt",ios::in);
     const int LINE_LENGTH=100;
     char str[LINE_LENGTH];
     char str1[LINE_LENGTH];
     memset(str1,0,LINE_LENGTH);
     memset(str,0,LINE_LENGTH);
     strcpy(str1,reff);
     while(!filea.eof())                      
     {
      filea.getline(str,LINE_LENGTH);
      int i=strcmp(str1,str);
      memset(str,0,LINE_LENGTH);
      memset(str1,0,LINE_LENGTH);

      if(0 == i)
      {
       filea.close();
       return 1; 
      }
     }
     filea.close();

      

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Honny_yeyh 2012年5月31日 1:12
    2012年5月30日 15:18
    版主