Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28

    [C++]Aiuto per gestione file in un programma!

    Ciao a tutti!!sono riuscito a compilare il mio progetto!..però quando eseguo sullo schermo non viene scritto nulla..penso ci sia un problema nella gestione dei file...questa è la parte di codice corrispondentei...
    codice:
        collezione_studenti tutti_gli_studenti;
        ifstream f1;
        f1.open("studenti.txt");
        tutti_gli_studenti.leggi_coll_stud(f1);        
        ifstream f2;
        f2.open("corsi.txt");
        collezione_corsi tutti_corsi;
        tutti_corsi.leggi_coll_corso(f2);
        collezione_esami tutti_esami;
        ifstream f3;
        f3.open("esami.txt");
        tutti_esami.leggi_coll_es(f3);
    queste sono le funzioni proprie di lettura delle classi collezione_studenti,collezione_corsi,collezione_es ami che hanno in private un vettore di elementi di tipi definiti da altre classi...
    codice:
    void leggi_coll_stud(istream&SORG)
               {
                   string NOME,COGNOME,INDIRIZZO,FACOLTA,EMAIL;
                   int MATRICOLA,ANNO_CORSO;
                   DATA DATA_DI_NASCITA;
                   char SEP;
                   for(int i=0;i<dim_stud;i++)
                   {
                       SORG>>NOME;
                       SORG>>COGNOME;
                       SORG>>DATA_DI_NASCITA.giorno;
                       SORG>>SEP;
                       SORG>>DATA_DI_NASCITA.mese;
                       SORG>>SEP;
                       SORG>>DATA_DI_NASCITA.anno;
                       SORG>>INDIRIZZO;
                       SORG>>MATRICOLA;
                       SORG>>FACOLTA;
                       SORG>>ANNO_CORSO;
                       SORG>>EMAIL;
                       coll_stud[i]=studente(MATRICOLA, ANNO_CORSO, NOME, COGNOME, INDIRIZZO, DATA_DI_NASCITA, FACOLTA, EMAIL);
                   }
                   return;
               }
    codice:
    void leggi_coll_corso(istream&SORG)
               {
                   string NOME_C;
                   int CODICE,CFU,ANNO,SEMESTRE;
                   for(int i=0;i<dim_ins;i++)
                     for(int j=0;j<dim_ins;j++)
                      {
                          SORG>>NOME_C;
                          SORG>>CODICE;
                          SORG>>CFU;
                          SORG>>ANNO;
                          SORG>>SEMESTRE;
                          coll_corso[i]=corso(NOME_C,CODICE,CFU,ANNO,SEMESTRE);
                      }
                    return;
               }
    codice:
    void leggi_coll_es(istream&SORG)
               {
                   int MATRICOLA_STUD,CODICE_INS,VOTO;
                   DATA DATA_ES; 
                   char SEP; 
                   for(int i=0;i<dim_es;i++)
                   {
                          SORG>>MATRICOLA_STUD;
                          SORG>>CODICE_INS;
                          SORG>>VOTO;
                          SORG>>DATA_ES.giorno;
                          SORG>>SEP;
                          SORG>>DATA_ES.mese;
                          SORG>>SEP;
                          SORG>>DATA_ES.anno;
                          coll_es[i]=esame(MATRICOLA_STUD,CODICE_INS,VOTO,DATA_ES);
                   }
                    return;
               }
    in più ci dovrebbe essere un errore anche nell'immissione di un nuovo nome perchè automaticamente dice che l'array è già pieno anche se non ho inserito alcun dato...
    questo è il codice nel programma principale:
    codice:
    k=tutti_gli_studenti.get_nome_coll_stud();
    if(k!=0)
    {
          cout<<"inserisci il nome"<<endl;
          tutti_gli_studenti.leggi_un_nome(cin,k);
    }
    else cout<<"file già pieno"<<endl;
    questa è la funzione che utilizzo per trovare il primo elemento vuoto dell'array:
    codice:
    int get_nome_coll_stud()
               {
                     for(int i=0;i<dim_stud;i++)
                         if(coll_stud[i].get_nome()=="") return i;
                     return 0;
               }
    invece questa è la funzione di lettura del nome
    codice:
    void leggi_un_nome(istream&SORG,int i)
               {
                    coll_stud[i].leggi_nome(SORG);
                    return;
               }
    grazie per il vostro aiuto!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosi', per provare, si deve fare il collage di tutti i pezzi e questo porta a non risponderti ...

    A parte il fatto che non si sa come sia fatto il tipo di dato

    collezione_studenti

    Per poter capire, è meglio postare un link da dove scaricare l'intero sorgente e anche un esempio di file studenti.txt, corsi.txt, esami.txt su cui operi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.