APERTURA DI UN FILE:FOPENrestituisce un puntatore a file e se si verifica un errore restituisce NULL.esempio:FILE *fp; /*definisco un puntatore a un file*/fp=fopen("nomefile.estensione","modalita"); /*modalità r=lettura,w=scrittura,a=w senza sovrascivere*/notazione:solitamente per aprire un file si usa:if((fp=fopen("..",".."))==NULL{printf("errore!);return ;}
CHIUSURA DI UN FILE:FCLOSEchiude il fileesempio:fclose(fp); /*fp puntatore a file gia aperto in precenza*/
FINE DI UN FILE:FEOFdetermina il raggiungimento della fine del file.restituisce vero quando è raggiunto fine filee zero negli altri casi.esempio:while(!feof(fp)) /*scorre il file fino alla fine*/{........}
INPUT OUTPUT SU UN FILE1.X CARATTERI2.X FILE DI TESTO3.X FILE BINARI
1.CARATTERI:getc,putcgetc legge caratteri da un file aperto in modalità lettura.restituisce un intero e alla finedel file EOF.esempio:char ch; /*variabile di tipo carattere*/ ch=getc(fp);
putc scrive su file un carattere.se l'operazione ha avuto successo,restituisce il caratterealtrimenti EOF.esempio:char ch='a'; /*inizializzo la variabile*/putc(ch,fp); /*scrive questo carattere sul file*/
2.FILE DI TESTO:fscanf,fprintffscanf legge da un file di testo un intero(o float o carattere o struct) e lo mette in una variabiledefinita in precedenza;esempio:int t;fscanf(fp,"%d",&t); /*legge dal file un intero (perchè c'è %d) e lo mette nella variabile t;
fprintf scrive su un file di testo il valore di una variabileesempio:float t=1,5;fprintf("fp,"%f",t);
3.FILE BINARI:fread,fwritefread legge dal file e restituisce il numero di oggetti letti.esempio:fread(&d,sizeof(num byte),numero,fp);dove:&d=puntatore a regione di memoria che riceverà i dati letti.num byte=può essere int,float,long,o di tipo structmumero=1 perchè è uno il numero di elementi letti ogni volta
fwrite scrive sul file e restituisce il numero di oggetti scritti.esempio:fwrite(&d,sizeof(num byte),numero,fp)&d=puntatore a regione di memoria che conserva i dati da scrivere.num byte=può essere int,float,long,o di tipo structmumero=1 perchè è uno il numero di elementi scritti ogni volta
ESEMPIO FINALE:
#include
while(!feof(fp)) /*scorro tutto il file e leggo tutti gli interi contenuti in esso*/{fscanf(fp,"%d",&t); /*legge un intero e lo mette nella variabile t*/printf("%d",t); /*stampo l'intero letto*/}
fclose(fp);
printf("inserisci nome file da scrivere:");scanf("%s",NOMEFILE);if((gp=fopen("NOMEFILE","a"))==NULL{printf("errore!);return ;}
printf("inserisci valore:");scanf("%d",&val); /*inizializzo la variabile var*/fprintf(gp,"%d",val); /*scrivo il valore di val sul file*/fclose(gp);}
Nessun commento:
Posta un commento