Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - leggere file riga per riga
Forum - C/C++ - leggere file riga per riga

Avatar
Galatolo_Federico (Ex-Member)
Pro


Messaggi: 91
Iscritto: 23/06/2007

Segnala al moderatore
Postato alle 17:56
Domenica, 07/10/2007
ho un problema che ci sto diventando matto:grr:
vogli leggere un specifica riga di un file ad es. file "C:\ciao.txt" riga 2 come faccio?
io usovo:

   FILE * pFile;
   char string [100];

   pFile = fopen ("C:\ciao.tx" , "r");
   if (pFile == NULL) perror ("Errore");
   else {
     fgets (string , 100 , pFile);
     puts (string);
     fclose (pFile);

ma cosi mi legge la prima riga e basta mi potete dare quelche dritta su come fare

Ultima modifica effettuata da Galatolo_Federico il 07/10/2007 alle 17:56
PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 18:40
Domenica, 07/10/2007
Testo quotato

Postato originariamente da Galatolo_Federico:

   pFile = fopen ("C:\ciao.tx" , "r");
   if (pFile == NULL) perror ("Errore");
   else {
     fgets (string , 100 , pFile);
     puts (string);
     fclose (pFile);




Beh, basta stilare un piccolo flow-chart.
Cosa succede, apri lo stream verso il file e controlli se l'operazione è avvenuta correttamente, se cosi fosse ti limiti a collocare nell'array string la prima riga del file.
Per prendere in considerazione più righe del file dovresti immettere un ciclo, per es. :

Codice sorgente - presumibilmente C/C++

  1. pFile = fopen ("C:\ciao.tx" , "r");
  2.  
  3. if (pFile == NULL) {
  4. perror ("Errore");
  5. return 0;
  6. }
  7. else {
  8. while(!pFile.eof()) {
  9. fgets(string , 100 , pFile);
  10. puts (string);
  11. }
  12. }
  13.  
  14. fclose (pFile);



(Ho improvvisato il codice)
Cosi facendo, acquisisci tutte le righe del file fino ad eof, cioè la fine del file.
Per prendere una riga specifica, metti un contatore e quando quest'ultimo raggiunge il numero della riga stabilita, esci dal ciclo.
Nell'array ci saranno i dati desiserati.
Spero di esserti stato utile.

:k:

Ultima modifica effettuata da WARRIOR il 07/10/2007 alle 18:40


Continuerò a correre, perchè ci sarà sempre qualcuno migliore di me.

Evvia i libri, evitate gli stolti che non li integrano nella loro vita.

http://www.mentisferiche.it

Luca Tedesco
PM Quote