|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
[C]Scrivere un array in un file
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 Codice:
#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(); }
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2008
Messaggi: 1227
|
prova con fputc()
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2773
|
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?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:19.