36

fstream標準クラスを使用して行をカウントするにはどうすればよいifstreamですか?

4

8 に答える 8

118

これはどう :-

  std::ifstream inFile("file"); 
  std::count(std::istreambuf_iterator<char>(inFile), 
             std::istreambuf_iterator<char>(), '\n');
于 2010-06-18T20:26:55.410 に答える
13

ファイルを1行ずつ読み取ります。読んだ行数を数えます。

于 2010-06-18T20:21:24.483 に答える
12

これは、Craig W. Wright の回答の正しいバージョンです。

int numLines = 0;
ifstream in("file.txt");
std::string unused;
while ( std::getline(in, unused) )
   ++numLines;
于 2010-06-18T20:48:25.547 に答える
-3

int numLines = 0;
ifstream in("file.txt");
//while ( ! in.eof() )
while ( in.good() )
{
   std::string line;
   std::getline(in, line);
   ++numLines;
}

ファイルが改行で終わらない場合、ファイルの最後の行をどのように扱うかという問題があります。何をしているかによっては、数えたい場合とそうでない場合があります。このコードはそれをカウントします。

参照: http://www.cplusplus.com/reference/string/getline/

于 2010-06-18T20:31:38.897 に答える
-15

ファイルサイズを 1 行あたりの平均文字数で割ります!

于 2010-06-18T21:54:14.370 に答える