¿Cómo puedo contar líneas usando las clases estándar, fstream
y ifstream
?¿Cómo contar las líneas de un archivo en C++?
Respuesta
¿Qué tal esto: -
std::ifstream inFile("file");
std::count(std::istreambuf_iterator<char>(inFile),
std::istreambuf_iterator<char>(), '\n');
Eso es lo que diría, si no lo dijiste antes que yo. Aún así, tu camino es un poco mejor ... +1 – fingerprint211b
Acabo de recordar algo, ¿Qué pasa si la última línea no tiene \ n? – fingerprint211b
@ fingerprint211b: agregue uno al resultado :-) Siempre existe este compromiso si tiene una nueva línea al final del archivo. – Abhay
Lea el archivo línea por línea. Cuenta el número de líneas que lees.
¡Eso suena como una sobrecomplicación _huge_! ;-) –
int numLines = 0;
ifstream in("file.txt");
//while (! in.eof())
while (in.good())
{
std::string line;
std::getline(in, line);
++numLines;
}
No es una cuestión de cómo tratar a la última línea del archivo si no termina con un salto de línea. Dependiendo de lo que esté haciendo, es posible que desee contarlo y es posible que no. Este código lo cuenta.
'while (! In.eof())' <--- NOOOOO! Esto dará basura si hay algún tipo de falla al leer el archivo. Pon "std :: getline" como la condición del tiempo. –
Todavía no es válido después de su edición porque si 'std :: getline' falla, usted incrementa el recuento de líneas, y no verifica si tuvo éxito hasta después. Mueva 'std :: getline' a la condición del tiempo. –
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;
std :: getline (in, std :: string()) - Enlazar una referencia no const a un temporal no es legal C++. – Pietro
@Pietro: Buen punto. ¡Fijo! –
Divida el tamaño del archivo y el número medio de caracteres por línea!
¿Cómo se determina el número promedio de caracteres por línea sin leer el archivo? Si estás contando los personajes, también podrías contar las nuevas líneas; que tipo de invalida tu respuesta. –
int aNumOfLines = 0;
ifstream aInputFile(iFileName);
string aLineStr;
while (getline(aInputFile, aLineStr))
{
if (!aLineStr.empty())
aNumOfLines++;
}
return aNumOfLines;
núcleo métodos siguientes @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 va a cambiar el estado de flujo de archivos origen y que incluye 'transformación situación n'-miss \ para la última línea
- 1. Contar el número de líneas en un archivo txt con Python excluyendo las líneas en blanco
- 2. ¿Cómo contar las líneas en una cadena?
- 3. ¿Cómo contar las líneas de código?
- 4. C# ¿Cómo cuento las líneas en un archivo de texto
- 5. Bash: encontrar el archivo con las líneas max contar
- 6. Contar filas en un archivo de texto
- 7. ¿Hay alguna forma mejor de contar las líneas en un archivo de texto?
- 8. ¿Cómo contar las líneas de código (LOC) usando IntelliJ IDEA?
- 9. ¿Cómo contar el número de líneas en un JTextArea, incluidas las causadas por el ajuste?
- 10. En vim, ¿cómo puedo eliminar todas las líneas en un archivo, excepto las últimas 100 líneas?
- 11. Iteración sobre las líneas de un archivo
- 12. ¿Cómo contar el número de líneas no vacías en un archivo usando sed?
- 13. ¿Cómo contar las líneas de código en Python excluyendo los comentarios y las cadenas de documentos?
- 14. Cómo unir las primeras n líneas en un archivo
- 15. ¿Cómo elimino las nuevas líneas de un archivo de texto?
- 16. Función C que cuenta las líneas en el archivo
- 17. manera eficiente para contar las líneas cantidad obedeciendo alguna condición
- 18. Abra solo las primeras líneas de un archivo en Vim
- 19. Contar líneas, palabras y caracteres dentro de un archivo de texto usando Python
- 20. Contar el número de apariciones de token en un archivo
- 21. ¿Cómo contar el número de líneas en una cadena de Objective-C (NSString)?
- 22. ¿Lees las últimas n líneas de un archivo en Ruby?
- 23. Cómo leer las últimas "n" líneas del archivo de registro
- 24. ¿Cómo se pueden paralelizar las líneas de lectura de un archivo de entrada cuando las líneas se procesan independientemente?
- 25. Cómo escribir todas las líneas en C# sin CRLF
- 26. Lea solo las primeras líneas de texto de un archivo
- 27. Buscar líneas duplicadas en un archivo y contar cuántas veces se duplicó cada línea?
- 28. Leer líneas de un archivo de texto pero omita las dos primeras líneas
- 29. Node.js: Cuente el número de líneas en un archivo
- 30. Cómo leer un archivo en una de las líneas siguientes en Fa #
huele a tarea: ¿qué has intentado hasta ahora? – KevinDTimm
Comience con '1' y continúe agregando 1 para cada línea en el archivo. –
@Noah: ¿El archivo vacío tiene una línea? –