Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369

    [C] - Leggere un file una riga per volta

    Salve,

    io ho bisogno di leggere un file....7 righe per volta.

    ma in pratica ad ogni ciclo io faccio 6 volte la lettura di una singola riga, quindi il problema si riduce a come leggerlo una riga per volta.

    ora, io ero certo che si usasse fgets...solo che quando faccio girare il programma mi va in errore (finestrina di errore windows con la possibilità di inviare o meno).

    dove sbaglio?o cosa uso se la fgets non va bene?

    ecco il codice

    Codice PHP:
    do
         {if(
    != NULL)
          {
               if(
    inserisci(pl,*e)==NULL)
                
    printf("Potrebbero esserci stati degli errori nell'inserimento in lista\n");
          }
          
    fgets(e->51 fp);
          
    fgets(e->51 fp);
          
    fgets(e->51 fp);
          
    fgets(e->fp);
          
    fgets(e->dx fp);
          
    fgets(e->dv 101 fp); 
         }
         while(
    fgets(e->cm 101 fp)); 

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma poi ... "ti va in errore" ... in quale riga?

    Puo' darsi che il problema non stia nella fgets ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    allora

    x menphisx : giustamente non te lh'o detto xD

    e è di tipo Elem che è una struct costituita da tutti vettori di char + un puntatore ad una struct Elem (ovvero il next)

    inserisci : inserisce in lista il contenuto di e, ma non viene tirata un causa perchè il blocco avviene al primo ciclo, quando e è ancora inizializzata a tutti NULL

    ----------

    x oregon : il problema è la fgets perchè se metto un breakpoint appena sopra, il programma arriva al breakpoint....se lo metto appena sotto no.

    ovviamente si verifica sulla prima fgets perchè poi le altre sono uguali

  5. #5
    Forse fa in overflow, controlla che le dimensioni dei vettori corrispondano al numero di caratteri letti ...
    Se magari posti la dichiarazione del tipo Elem, e l'errore che ti da windows te ne sarei grato

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    per l'overflow no di sicuro perchè sto leggendo delle righe che sono di circa una ventina di caratteri (in riferimento alla prima fgets che tanto da già problemi)....se centra aggiungo che la riga contiene spazi

    ora un attimo che posto anche l'errore di windows

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non e' che il campo

    t

    della struttura e' dimensionato con

    char t[50];

    ?

    In questo caso, scrivere 51 puo' creare problemi se la linea e' molto lunga (se ci sono degli spazi, puo' darsi che non ti rendi conto di quanto sia lunga) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    no è dimensionato con 51.

    devo mettere 50 all'interno del fgets?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Va bene che siano uguali.

    Pero', in questo caso, l'errore e' strano ... mi sa proprio che avviene per un motivo non legato alla fgets ...

    Per capire in maniera definitiva, servirebbero le informazioni che ti sono state chieste e che hai detto che inviavi (la struttura ? l'errore ?). Se puoi, anche uno zip con il file che viene letto e il source (il progetto) per effettuare il debug ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    ma no è il classico errore di windows dove ti viene chiesto se vuoi inviare la segnalazione dell'errore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.