INDICE
Parte 1: Introduzione.
Parte 2: Fasi, variabili, operatori e software.
Parte 3: Tipi di dato, direttive e primo programma.
Parte 4: Tipi di formato, prinft e scanf.
Parte 5: Istruzioni condizionali e di iterazione.
Parte 6: Funzioni e progetti su più file.
Parte 7: Puntatori e passaggio dei parametri.
Parte 8: Array, stringhe e strutture.
Parte 9: Gestione file: file di testo.
Parte 10: Gestione file: file binari.
Parte 11: Allocazione dinamica della memoria.
Parte 12: Creare ed utilizzare le liste nel C.
Parte 13: Algoritmi di ordinamento di Array.
Parte 14: Esercizi sul linguaggio C.
Un file binario è una mera sequenza di byte, che può essere usato per archiviare sulla memoria di massa qualsiasi tipo di informazione, sia essa un’immagine, un file audio, un numero, ecc… Bisogna però ricordare che input e output avvengono sotto forma di unasequenza di byte, e che la fine del file è rilevata sempre in base all’esito delle operazioni di lettura, in quanto non esiste un EOF, perchè il file binario non è una sequenza di caratteri.
FWRITE()
Per poter scrivere su un file binario, si utilizza la funzione fwrite, così definita:
int fwrite(addr, int dim, int n, FILE *f);
- Scrive sul file n elementi, ognuno grande dim byte (quindi in totale scrive n*dim byte);
- Gli elementi che verranno scritti li preleva partendo dall’indirizzo addr;
- Restituisce il numero di elementi scritti.
Ecco un esempio di fwrite() usata per scrivere una semplice sequenza di numeri presente all’interno di un array:
La funzione fread() serve invece per leggere dati da un file binario e la sua struttura è questa:
int fread(addr, int dim, int n, FILE *f);
- Legge da file n elementi, ognuno grande dim byte (per cui tenta di leggere n*dim byte);
- Gli elementi da leggere vengono scritti in memoria a partire dall’indirizzo addr;
- Restituisce il numero di elementi letti.
Per esempio, per controllare velocemente se l’esercizio di prima è andato a buon fine, si può integrare il codice in questo modo:
Proviamo ora a fare l’esercizio che nella scorsa lezione abbiamo fatto con i file di testo, ma utilizziamo questa volta i file binari.
- L’array di persone che ho creato comprende 5 record, ossia 5 persone che hanno ognuna un nome, un cognome, un’età e una data di nascita; perciò ho dovuto dire alla fwrite() di scrivermi 5 record, ognuno contenente tutti i dati che una persona può avere! E questa cosa la si specifica con sizeof(Persona);
- Stesso discorso vale per quanto riguarda la fread(); infatti ho dovuto leggere 5 record ognuno contenente tutti i dati di una singola persona.
Se quando lanciate questo programma usate i dati che uso io nell’immagine qui sotto, vi dovrebbe venire questo come risultato:
programmacorposobinario.c |
Dottore in Ingegneria Informatica.
Contattatemi sui miei Social Network e sul mio Sito personale per collaborazioni, proposte di lavoro e altre informazioni!