PDA

Visualizza la versione completa : [C] Come salvare una tabella in file binario (era: aiuto esercizio...)


annabie2
08-06-2010, 19:06
Ciao avrei bisogno di un aiuto per svolgere questo esercizio....
dopo aver stampato una tabella in seguit alle istruzioni:



void stampa_tabella()
{
int n;
float i;

for(n=1;n<=30;n++)
{
printf("%-5d", n);
for(i=4;i<=6;i+=0.5)
printf("%f ", fint(i, n));
printf("\n");
}
}

con

[code]
float fint(float i, int n)
{
float fint;
fint=pow(1.+i/100, n);
return (fint);
}


dovrei Scrivere una funzione che salva la tabella iniziale in un file binario. Rileggere da
file i dati memorizzati e visualizzarli a video.

ho pensato a questo:



void crea_file()
{
FILE *fp, *fb;

fb=fopen("ottobre.bin", "w+");

int n;
float i, f;

for(n=1;n<=30;n++)
{
fwrite(&n, sizeof(int), 1, fb);

for(i=4;i<=6;i+=0.5)
{
f=fint(i, n);

fwrite(&f, sizeof(float),1,fb);

}

}

fseek(fb,0,SEEK_SET);
for(n=1;n<=30;n++)
{
fread(&n, sizeof(int), 1, fb));
printf("\n%3d", n);
for(i=4;i<=6;i+=0.5)
{
f=fint(i, n);
fread(&f,sizeof(float),1, fb));
printf(" %f", f);
}

}

fclose(fb);

}


però ho un dubbio... perchè stampo a video la tabella senza che sia in qualche modo legata al file.. come posso fare?

oregon
08-06-2010, 19:09
O ne conservi i valori in un array che poi usarai nelle funzioni che scrivono su file, o scrivi su file mentre visualizza la tabella.

annabie2
08-06-2010, 19:13
potresti esser più chiaro? non ho capito...

annabie2
08-06-2010, 19:14
il problema è che il testo mi dice che le funzioni della tabella e della creazione del file devono esser separate...

oregon
08-06-2010, 19:15
E allora? Saranno separate. L'array lo useranno tutte e due le funzioni.

annabie2
08-06-2010, 19:17
come faccio a legare array printf fwrite e fread?

oregon
08-06-2010, 19:19
1) puoi usare un array globale

2) puoi usare un array locale e passarne l'indirizzo alle varie funzioni che lo utilizzano

P.S. Quando posti il codice, perchè sia leggibile, usa i tag CODE

LeleFT
09-06-2010, 12:46
Prendi anche visione del Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887): ci sono tutte le norme da rispettare nell'apertura di nuove discussioni, come

1) Titoli
2) Indicazione del linguaggio
3) Posting del codice

E altre.


Questa discussione la sistemo io, in futuro pensaci tu.


Ciao. :ciauz:

Loading