计算文件C ++中每行的整数数量

时间:2015-12-31 10:33:55

标签: c++

我的任务是从C ++中的txt文件计算每行中的整数数量。

文件格式为:

    Steve Road_43 St43 32 45 2 5 7 23 545

    John Road_21 Dt_4 3 4 5 12 31 0

最后格式为< string string string int int int int ... int> 问题是每行中的整数数量不同,那么我怎么知道每一行的整数数量呢?

我的代码 - >

#include <iostream>
#include <fstream>
#include <sstream>
#include <ctype.h>
#include <string>


using namespace std ;




int main()
{

  string File_Name ,
         temp ;



  int counter_0 = 0 ;



  cout << " Please enter the File-Name :  " ;
  getline ( cin, File_Name ) ;
  cout << endl << endl << endl ;


  ifstream FP_1 ( File_Name ) ;


  if ( FP_1.is_open(  ) )
  {

      while ( ! FP_1.eof( ) )
      {

        getline ( FP_1, temp ) ;
        cout << temp;
        stringstream str ( temp ) ;

         int x ;

         while ( str >> x )              
         {
            counter_0 ++ ;
         }

        cout << " "  << counter_0 <<endl;
        counter_0 = 0;

      }

  }
  else
  {
      exit ( 1 ) ;
  }


  FP_1.close ( ) ;



 system ( " pause " ) ;
 }

counter_0始终为零。不计算整数

1 个答案:

答案 0 :(得分:2)

很快str >> x在输入中看到非int类型,str的状态设置为fail,您永远不会恢复它。

因此,不会读取数字,因为这些行以非数字值开头。

您可以预先使用两个非int值,然后读取所有int值:

     int x ;
     std::string dummy;

     str >> dummy >> dummy;

     while ( str >> x )              
     {
        counter_0 ++ ;
     }