txt por palabras manejo linea lenguaje leer guardar ejercicios datos contar binarios archivos archivo c++ file-io io fstream ifstream

por - ¿Cómo contar las líneas de un archivo en C++?



manejo de archivos en c pdf (7)

¡Divida el tamaño del archivo por el número promedio de caracteres por línea!

¿Cómo puedo contar líneas utilizando las clases estándar, fstream e ifstream ?


Esta es la versión correcta de la respuesta de Craig W. Wright:

int numLines = 0; ifstream in("file.txt"); std::string unused; while ( std::getline(in, unused) ) ++numLines;


Lees el archivo línea por línea. Cuente el número de líneas que lee.


Qué tal esto :-

std::ifstream inFile("file"); std::count(std::istreambuf_iterator<char>(inFile), std::istreambuf_iterator<char>(), ''/n'');


métodos kernel siguiendo a @Abhay

Un código completo que he hecho:

size_t count_line(istream &is) { // skip when bad if( is.bad() ) return 0; // save state std::istream::iostate state_backup = is.rdstate(); // clear state is.clear(); std::istream::streampos pos_backup = is.tellg(); is.seekg(0); size_t line_cnt; size_t lf_cnt = std::count(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), ''/n''); line_cnt = lf_cnt; // if the file is not end with ''/n'' , then line_cnt should plus 1 is.unget(); if( is.get() != ''/n'' ) { ++line_cnt ; } // recover state is.clear() ; // previous reading may set eofbit is.seekg(pos_backup); is.setstate(state_backup); return line_cnt; }

no cambiará el estado de la secuencia del archivo de origen e incluirá el procesamiento de situación ''/ n''-miss'' para la última línea.


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

Hay una cuestión de cómo se trata la última línea del archivo si no termina con una nueva línea. Dependiendo de lo que esté haciendo, es posible que desee contarlo y es posible que no. Este código lo cuenta.

Ver: http://www.cplusplus.com/reference/string/getline/


int aNumOfLines = 0; ifstream aInputFile(iFileName); string aLineStr; while (getline(aInputFile, aLineStr)) { if (!aLineStr.empty()) aNumOfLines++; } return aNumOfLines;