View Full Version : [C] Apro un file di testo .txt: come verifico se è vuoto??
matrix866
15-01-2012, 21:32
Ciao a tutti. Sto studiando il C e all'apertura di un file di testo .txt per
verificare se esiste uso l'identificatore NULL.
Mi chiedevo e come faccio, nel momento in cui apro un file (quindi esiste) a vedere se è vuoto?
Grazie anticipatamente.
wingman87
15-01-2012, 21:54
Guarda l'esempio in questa pagina:
http://www.cplusplus.com/reference/clibrary/cstdio/ftell/
mesonepigreco
15-01-2012, 22:51
Se hai aperto il file in lettura puoi verificare se fscanf ti da EOF (End Of File):
più o meno così
FILE * fp = fopen("nomefile.txt", "r");
char[100] primaparola;
if (fscanf(fp, "%s", primaparola) == EOF) {
// Il file è vuoto
}
In genere però EOF si usa per stabilire se si è giunti alla fine del file
lo si usa in un ciclo:
per esempio:
while (fscanf(fp, "%s", &Variabile) != EOF) {
// Questo codice viene eseguito fin quando il file non è finito
}
matrix866
15-01-2012, 23:09
Se hai aperto il file in lettura puoi verificare se fscanf ti da EOF (End Of File):
più o meno così
FILE * fp = fopen("nomefile.txt", "r");
char[100] primaparola;
if (fscanf(fp, "%s", primaparola) == EOF) {
// Il file è vuoto
}
In genere però EOF si usa per stabilire se si è giunti alla fine del file
lo si usa in un ciclo:
per esempio:
while (fscanf(fp, "%s", &Variabile) != EOF) {
// Questo codice viene eseguito fin quando il file non è finito
}
Grazie, non ci avevo pensato :)
clockover
16-01-2012, 01:28
Io utilizzerei più il metodo dell'esempio postato da wingman87
fseek(file, 0, SEEK_END);
long size = ftell(file);
e ovviamente se size = 0 il file è vuoto
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.