Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
148 views
in Technique[技术] by (71.8m points)

How to count the number of lines in a file using C++?

click here for the text file

I used the following code in Code::Blocks IDE. I get the number of lines as 2. Kindly help me with the code.

#include <iostream>
#include <fstream>
#include <string>

using namespace std;


int main()
{
ifstream in("readInt.txt", ios::in);
if(!in)
{
    cout << "Cannot open file";
    return 1;
}

string str;
int j=0;

while(in)
{
    getline(in,str);
    j++;
}

cout << "No of lines are: " << j;
in.close();
return 0;

}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You get a too small result because the line endings in your text file are encoded in a different way than the convention on your system.

Save or recreate the file with correct line endings for your system.


In the other direction, towards a too high result, the presented code

while(in)
{
    getline(in,str);
    j++;
}

… would produce a count of 1 for an empty file.

Instead do

while( getline(in,str) )
{
    j++;
}

Note: this remark only covers correctness, not efficiency.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...