PDA

View Full Version : [C/C++] Funzione di scrittura su file


zanardi84
22-01-2011, 15:58
Ho una funzione che deve scrivere alcuni dati su file.
La scrittura nel formato che ho scelto comporta una sequenza di if.
Ad esempio in pseudocodice.
if (casoA)
{
fout << quello che devo;
}
else if (casoB)
{
fout << quello che devo 2;
}...

Visto che la medesima sequenza serve in pių parti del programma, vorrei scrivere una funzione dedicata, solo che non so come impostarla.

Al momento, prima della sequenza che ho riportato, apro il file (ci sono occasioni in cui l'apertura č in accodamento, mentre in altre č come file nuovo), eseguo la scrittura, poi chiudo il file.

Se io scrivessi una funzione con una chiamata del tipo
scrivi_file(parametri);

dovrei comunicare in qualche modo, nei parametri, il file su cui deve scrivere, o scriverebbe su quel file aperto in automatico?

Nel caso in cui dovessi comunicare il file, come dovrei fare?

Non so se sono riuscito a essere chiaro.
Grazie.

Perseverance
22-01-2011, 16:37
Dipende se devi scrivere su 1 solo file o se devi gestire pių file. Se hai 1 solo file deleghi alla funzione la gestione di quel file, dichiarandolo tra le variabili globali se stai usando 1 solo sorgente .cpp, oppure la metti nell'header .h dove scrivi le funzioni, header che dovrai includerai nel .cpp. Cmq nel caso semplice 1 solo file 1 solo sorgente:

Dichiari una variabile di tipo file globale e ti crei una funzione che scrive un file del tipo:

int scrivifile (String frase_da_scrivere)
{
//Apri il file in scrittura append, se genera errori return 1, altrimenti
//Scrivi nel file la frase
//Chiudi il file
return 0;
}

...

void main()
{
String frase;
//blablabla
scrivifile(frase);
}

Se vuoi gestire anche gli errori un po' meglio nel main():
void main()
{
String frase;
//blablabla

if(scrivifile(frase))
{
//Scrittura fallita
}
else
{
//Scrittura OK
}
}