Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Lettura dati da un file

    Salve a tutti, ho guardato un po in giro ma non credo di aver visto ciò di cui ho bisogno. Spero mi potrete aiutare.
    Io ho un file nomi.dat così strutturato:
    25 gennaio 1985
    3 aprile 2011
    etc..
    devo scrivere un programma che produca 3 risultati.
    1-media di tutte le date presenti nel file,
    2-media ti tutti gli anni presenti nel file,
    3-indichi il mese più ricorrente tra quelli del file.
    E' un esercizio di preparazione ad un esame di C all'università.
    Per ora sul primo punto sono giunto a questo:
    codice:
    #include <stdio.h> 
    #include <string.h> 
    int main() { 
    int giorno; 
    FILE *fp; 
    fp=fopen("lista.dat","r"); 
    while(!feof(fp)) { 
    fscanf(fp,"%d",&giorno); 
    printf("%d\n",giorno); 
    } 
    fclose(fp); 
    return 0; 
    }
    Solo che così legge correttamente solo il 25 (primo giorno) e poi lo ristampa all'infinito.
    Il printf l'ho messo dentro al while per vedere cosa leggeva, se lo metto fuori dal while invece il programma si avvia ma non stampa nulla e devo interromperlo.
    So che dovrei dirgli una volta letto il 25 di andare subito a capo e leggere il secondo valore e così via ma non ho idea di come fare...
    Grazie in anticipo a chiunque mi aiuterà.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    Ciao,

    ma procedere con una cosa di questo tipo:
    codice:
    #include <stdio.h> 
    #include <string.h> 
    
    int main() 
    { 
      int giorno; 
      char mese[10];
      char a_capo;
      int anno;
      FILE *fp; 
    
      fp=fopen("file.txt","r"); 
      while(!feof(fp)) 
      { 
         fscanf(fp,"%d %s %d %c",&giorno,mese,&anno,&a_capo); 
         printf("%d %s %d\n",giorno,mese,anno,a_capo); 
      } 
      fclose(fp); 
      
      return 0; 
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.