Cuando intento ejecutar mi programa, obtengo el número incorrecto de líneas impresas.Función C que cuenta las líneas en el archivo
LINES: 0
Ésta es la salida aunque tengo cinco líneas en mi archivo .txt
Aquí es mi programa:
#include<stdio.h>
#include<stdlib.h>
int countlines(char *filename);
void main(int argc, char *argv[])
{
printf("LINES: %d\n",countlines(argv[1]));
}
int countlines(char *filename)
{
// count the number of lines in the file called filename
FILE *fp = fopen(filename,"r");
int ch=0;
int lines=0;
if (fp == NULL);
return 0;
lines++;
while ((ch = fgetc(fp)) != EOF)
{
if (ch == '\n')
lines++;
}
fclose(fp);
return lines;
}
Estoy seguro de que se trata de un simple error, pero soy nuevo programación. Cualquier ayuda sería muy apreciada.
Usted debe dar un título que resume el error, no lo que haces cuando llegas el error. – Nobody
La comparación de un 'char' contra' EOF' es un problema. –
¿Por qué, @CarlNorum? – corazza