Funzione di C

di il
16 risposte

Funzione di C

Qualcuno mi spiega le prime 4 righe di questa funzione?

stud_p Read_from_file(stud_p begin,char file_name[])
{

    stud_p start;         //da qui a 
    stud stud_item;     //...
    FILE *fp;               //...
    int n;                           //a qui

    start=begin;                     

    fp=fopen(file_name,"rb");         
    if(fp==NULL)        
    {
        printf("Impossibile aprire il file %s in lettura. . .\n\n",file_name);
        printf("Nessun archivio importato!!\n\n");
        return begin;
    }

    start=begin;          
    n=1;
    
    while(n>0)
    {
        n=fread(&stud_item,sizeof(stud),n,fp);      
        
        printf("%d)  %4s  %4s  %4s  \1",n,stud_item.nome,stud_item.cognome,stud_item.voto);    
        
        if(n>0)                                     /
            start=Add_to_list(start,stud_item.nome,stud_item.cognome,stud_item.voto);       
    }
    
    return start;          
}


16 Risposte

  • Re: Funzione di C

    Credo nessuno possa spiegartelo se non mostri le definizioni di stud_p e di stud.
    Comunque quello che si può ipotizzare che stud sia una struttura e stud_p sia un puntatore a struttura stud.
  • Re: Funzione di C

    Start è un puntatore alla struttura .
    Ma stud_item cosi definito cosa rappresenta?
  • Re: Funzione di C

    Può essere uno stud-ente, uno stud-io o uno stud-iolo o se usi l'inglese (visto che si usa item al posto di elemento) potrebbe essere anche uno stallone
  • Re: Funzione di C

    Cosa è stud ?
  • Re: Funzione di C

    Stud è la struttura studente dichiarata in precedenza!
  • Re: Funzione di C

    Quindi ti sei risposto da solo ...
  • Re: Funzione di C

    Stud_item è un puntatore alla struct stud allora?
  • Re: Funzione di C

    Ma ci sei o ci fai?

    Hai detto tu che stud è una struttura ! Quindi stud_item come fa ad essere un puntatore ???
  • Re: Funzione di C

    Stud_item è una struttura, occupa uno spazio di memoria (sullo stack) e nel proseguo della funzione viene utilizzato per salvare temporaneamente le letture con fread().
  • Re: Funzione di C

    Grazie mille!! risposta molto esaustiva!!
  • Re: Funzione di C

    Sempre per restare in tema sulla stessa funzione , ma n che funzionalità ha qui?!! :/
  • Re: Funzione di C

    sempre per restare in tema sulla stessa funzione , ma n che funzionalità ha qui?!! :/
    Con questa superi il limite
    Vai a leggere la documentazione della funzione fread(), non hai bisogno di altre spiegazioni.
  • Re: Funzione di C

    Non fare queste domande.

    Cerca di imparare ... te lo dico sinceramente ...

    Dove sta n? Nella linea

    n=fread ...

    quindi è un valore restituito dalla fread ...

    Cosa restituisce la fread ? Dalla documentazione puoi leggere che restituisce il numero di elementi letti effettivamente ...

    Quindi se restituisce zero vuol dire che non ci sono elementi da leggere e quindi il ciclo ...

    continua tu ...
  • Re: Funzione di C

    Il ciclo termina?!
Devi accedere o registrarti per scrivere nel forum
16 risposte