Utente:Claudiaprt/Sandbox

File in C++

modifica

In questo paragrafo vorremmo definire come è possibile realizzare un software con l'utilizzo delle classi iN C++ per la gestione dei file di testo e binari.
{ ciao } Riferimenti alla documentazione tecnica delle classi coinvolte
Classe ISTREAM
http://www.cplusplus.com/reference/fstream/fstream/?kw=fstream
Classe OSTREAM
http://www.cplusplus.com/reference/fstream/ifstream/?kw=ifstream
Classe FSTREAM
http://www.cplusplus.com/reference/fstream/ofstream/?kw=ofstream

Tipo di operazioni possibili sui file

modifica

Apertura file

modifica
   modalità di apertura

Chiusura file

modifica

Lettura dati

modifica

Scrittura dati

modifica

Esercizio d'Esempio Sul file input.txt sono memorizzate le temperature di un mese (1 numero per riga). Realizzare un programma che calcoli e stampi la temperatura media del mese e scriva sul file output.txt le temperature in ordine decrescente.
E' importante conoscere la teoria sulla funzioni usate in informatica Funzione (informatica)

void ordina(float vet[],int num) { //ordina il vettore vet di num elementi in senso decrescente } int LeggiFile(float t[]) {

   fstream fi;
   int i=0;
   fi.open ("input.txt",ios ::in );
   if (fi.fail() ==true)
       cout<<"Attenzione file non esiste!!";
   else
   {
       // lettura di un file di testo
       while(!fi.eof ())
       {
           fi>>t[i];
           cout<<"valore letto"<<t[i]<<endl;
           i++;    
       }
       fi.close ();
   }
   return i;

}

void ScriviFile(float t[], int ne) {

   fstream fo;

//scrittura in un file di testo

   fo.open ("output.txt",ios::out  );
   for(int k=0;k<ne;k++)
       fo<<t[k]<<endl;
   fo.close ();

}

int main(array<System::String ^> ^args) {

   float t[33],tot=0;
   int i,num;
       num=LeggiFile(t);
       if (num!=0)
       {
           for(i=0;i<num;i++)
               tot=tot+t[i];
           tot=tot/num;
           cout<<"Valore medio delle temperature"<<tot;
           ordina(t,i);
           ScriviFile(t,num);
           cin.get();
       }
  return 0;

}