PDA

View Full Version : [C]Scrivere un array in un file


stgww
09-01-2010, 12:14
Ciao, si può fare questa cosa? Ho provato con vettore di interi, prima mettendolo nel file e poi provandolo a leggere, ma legge sbagliato.
Vi posto il codice che ho provato#include <stdio.h>
#include <stddef.h>

void main()
{
int vett[10],i;

FILE *fp;

fp=fopen("ciao.dat","w");
if(fp==NULL) printf("errore\n");
else
for(i=0;i<10;i++)
{
scanf("%d",&vett[i]);
fprintf(fp,"%d",vett[i]);
}
fclose(fp);


if((fp=fopen("ciao.dat","r"))==NULL) printf("errore\n");
else
for(i=0;i<10;i++)
{
fscanf(fp,"%d",&vett[i]);
printf("%d",vett[i]);
}
fclose(fp);


getchar();
getchar();

}

M4rk191
09-01-2010, 12:16
prova con fputc()

wingman87
09-01-2010, 12:19
Quando scrivi devi mettere dei separatori tra un numero e l'altro, altrimenti quando provi a leggere come fa a capire dove termina un numero e dove inizia il successivo?

cionci
09-01-2010, 18:07
A meno che non intenda scrivere i dati in binario, in tal caso non serovno limitatori, ma ovviamente non è più un file di testo. In tal caso comunque non va bene la fprintf, ma serve la write.
Per scrivere in binario bisogna postporre una "b" alla modalità di apertura del file.