Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come leggere un file di lunghezza ignota
Forum - C/C++ - Come leggere un file di lunghezza ignota

Avatar
lorenzoscarrone (Normal User)
Pro


Messaggi: 92
Iscritto: 16/11/2011

Segnala al moderatore
Postato alle 9:09
Martedì, 26/05/2015
Salve a tutti,

Un tema di esame del politecnico esercizio tratto da http://areeweb.polito.it/didattica/fondinf/Piccolo_Informa ... mi richiede di leggere un file di lunghezza ignota e di memorizzarne il contenuto. Siccome non sono sicuro che all'esame si permessa la seguente cosa:
Codice sorgente - presumibilmente C++

  1. //... codice
  2. void LeggiFile( const char nome_file[] ){
  3.     file = fopen(nome_file, "r");
  4.     int i=0;
  5.     while (!feof(file)){
  6.         i++; //leggo il numero di righe
  7.     }
  8.     int NumeroRighe = i-1; //i comprende anche la riga nulla quindi considero i-1 per il numero di righe
  9.     Contatore conto[NumeroRighe];
  10. //....il resto della funzione
  11. }
  12. //... altro codice



perciò volevo chiedere se esiste un altro modo per conoscere la lunghezza di un file

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 19:19
Martedì, 26/05/2015
Usa fseek e ftell per trovare la dimensione del file:

Codice sorgente - presumibilmente Plain Text

  1. fseek(fp, 0L, SEEK_END);
  2. sz = ftell(fp);
  3. fseek(fp, 0L, SEEK_SET);



http://www.cplusplus.com/reference/cstdio/fseek/
http://www.cplusplus.com/reference/cstdio/ftell/

Dopodichè puoi allocare un buffer e leggere il file per intero.



Il mio blog: https://piero.dev
PM Quote
Avatar
lorenzoscarrone (Normal User)
Pro


Messaggi: 92
Iscritto: 16/11/2011

Segnala al moderatore
Postato alle 9:09
Mercoledì, 27/05/2015
Grazie utilissimo :)

PM Quote