我的任务是从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始终为零。不计算整数
答案 0 :(得分:2)
很快str >> x
在输入中看到非int
类型,str
的状态设置为fail
,您永远不会恢复它。
因此,不会读取数字,因为这些行以非数字值开头。
您可以预先使用两个非int
值,然后读取所有int
值:
int x ;
std::string dummy;
str >> dummy >> dummy;
while ( str >> x )
{
counter_0 ++ ;
}