Riporto di seguito un piccola programma che dovrebbe visualizzare a video il numero di linee di un generico file di testo, ma purtroppo per me non fa esattamente ciò.
Qualcuno può aiutarmi per favore.
Ringrazio in anticipo.
/*Programma che mi permette di visualizzare a video il numero di linee di cui è composto un
file di testo.
Nota:il file di testo è acquisito tramite i parametri della funzione main*/
#include <stdio.h>
int main (int argc, char *argv[]){
int numero_linee(FILE*);
FILE *inp;
int num_righe;
if(argc <2)
printf("Errato numero di parametri\n");
else {
inp=fopen(argv[1],"r");/*Apertura del file originale.*/
if (inp == NULL) /*controllo che esista */
printf ("\nAttenzione. Errore in apertura del file \n\n");
else{
num_righe=numero_linee(inp);
printf("Il numero di righe del file è:%d\n", num_righe);
}
}
return 0;
}
/*Funzione che mi permette di contare il numero di righe di un file(la linea termina con il carat. '\n'*/
int numero_linee (FILE*inp)
{
int linee=0;
char tmp;
fseek(inp,0,0);/*Permette di portare il puntatore all' inizio del file*/
if(inp!=NULL) /*Se il file aperto non riporta nessun errore..*/
{
while(fscanf(inp,"%c",&tmp)!= EOF)
if (tmp=='\n')
linee++;
}
fclose(inp);
return linee;
}