0

ファイルを読み取るために ifstream を使用しているアプリケーションがあります。ファイルの各行に 1000 個の数字があります。私のアプリケーションは、これらすべての行を読み取る必要があります。

しかし、行数が 800 未満の場合、カウントが 0 として表示されるのはなぜですか。コードは以下です。

int tmp, count=0,ucount=0; 

ifstream fin("rnum.txt");
while(fin >> tmp)
{
    count++;
}
cout<<"showing count: "<<count<<endl;
ucount=count;
fin.open("rnum.txt");
int i=0;
cout<<"Before entering loop"<<count<<endl;
while(fin >> tmp){
    iArray[i++]=tmp;
}

1000 行のファイルを読み取ると、720 行しか読み取れません。なぜこのように読むのか理解できません。

コードに何か問題がありますか。

私の要件は、行数 COUNT を ucount 変数に入れることです。

4

4 に答える 4

1

ファイル内の行数をカウントするにはgetline関数を使用します。

#include<string>

std::string line;
while (std::getline(fin, line))
{
    ++count;
}
于 2013-04-17T10:53:36.383 に答える
0

ファイルを 2 回目に開く前に でファイルを閉じるfin.close()か、ファイルを開いたままにして、読み取りポインターをリセットし、eof フラグをクリアする必要があります。

于 2013-04-17T11:02:05.827 に答える