Estoy leyendo líneas fuera del archivo de texto y me pregunto si este es un buen camino a seguir. Tuve que escribir la función numberoflines
para disminuir el number_of_lines variable
en uno, porque dentro del ciclo while, para cada línea que lee agrega 2 a la variable number_of_lines.contando el número de líneas en un archivo de texto
#include <iostream>
#include <fstream>
using namespace std;
int number_of_lines = 0;
void numberoflines();
int main(){
string line;
ifstream myfile("textexample.txt");
if(myfile.is_open()){
while(!myfile.eof()){
getline(myfile,line);
cout<< line << endl;
number_of_lines++;
}
myfile.close();
}
numberoflines();
}
void numberoflines(){
number_of_lines--;
cout<<"number of lines in text file: " << number_of_lines << endl;
}
¿Hay alguna otra manera mejor y mejor?
¿Estás en un sistema UNIX? Si es así, ¿estás leyendo un archivo con terminaciones de línea DOS? Si es así, una línea nueva de DOS se puede tratar como dos líneas nuevas de UNIX. (No lo he probado, solo una suposición.) – strager
Si está agregando 2 por línea, ¿no debería dividir el resultado entre 2 en lugar de solo reducirlo en uno? – casablanca
¿Hay alguna razón para reinventar la rueda? Ya hay programas para hacer esto. Pruebe 'wc -l': http://unixhelp.ed.ac.uk/CGI/man-cgi?wc –