La funzione ftell in C consente di restituire la posizione corrente del file pointer rispetto all'inizio del file. La posizione corrente è espressa come numero di byte.
La sintassi della funzione ftell in C è dunque la seguente:
long ftell(FILE *fp)
La funzione ftell in C restituisce dunque un intero che è la posizione corrente del puntatore.
Fondamenti solidi di programmazione
Impara le basi della programmazione in C in modo semplice, pratico ed efficace. Variabili, cicli, funzioni, logica e algoritmi.
⏱️9 ore di corso registrato
🧩Più di 50 algoritmi risolti passo passo
🎯Livello base
💻100% online, fruibile quando vuoi
FILE *fp è, come nelle altre funzioni, il puntatore a FILE ottenuto dalla precedente chiamata fopen.
Esempio funzione ftell in C
Facciamo adesso un semplice esempio di programma che visualizza la dimensione di un file utilizzando le funzioni fseek ed ftell.
Supponiamo quindi di avere un file di testo di nome alunni.txt che contiene i nomi di alcuni alunni.
Quindi apriamo il file alunni.txt in lettura, con la funzione fopen, e calcoliamo semplicemente la dimensione di questo file utilizzando fseek per spostare il puntatore alla fine del file ed ftell per restituire la dimensione in byte del nostro file.
Ecco dunque il listato dell'esempio con l'uso di ftell in C:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main() {
FILE *fp;
long n;
if((fp=fopen("alunni.txt", "rt"))==NULL) {
printf("Errore nell'apertura del file'");
exit(1);
}
fseek(fp,0L,SEEK_END);
n=ftell(fp);
fclose(fp);
printf("Dimensione del file in byte: %ld\n", n);
return 0;
}
Sono svariati i casi in cui si può utilizzare la funzione ftell in C, infatti si potrebbe ad esempio voler conoscere la posizione di un valore massimo o di un determinato valore a seguito di una ricerca e così via. Nei tutorial che seguiranno vedremo ancora altri esempi d'uso.
Un'email ogni tanto con i nuovi articoli e le guide — niente spam, ti disiscrivi quando vuoi.
🍪 Questo sito usa i cookie
Utilizziamo cookie tecnici necessari al funzionamento e, previo tuo consenso, cookie
analitici e di terze parti per migliorare l'esperienza di navigazione.
Leggi la Cookie Policy e la
Privacy Policy.