La funzione fopen in C serve ad aprire un file in varie modalità.
La sintassi della funzione fopen è dunque la seguente:
FILE *fopen(char *nomefile, char *modo);
Dove nomefile è un puntatore ad una stringa di caratteri che indica il nome del file da aprire, mentre modo indica invece la modalità con cui il file può essere aperto.
Elenchiamo quindi le modalità disponibili:
r apre un file in lettura.
r+ apre un file in lettura/scrittura; il file deve esistere.
w crea un nuovo file in scrittura; se il file esiste viene cancellato il contenuto.
HP Laptop 15s-eq3000sl, AMD Ryzen 5 5625U, RAM 8GB DDR4, SSD NVMe 256GB, AMD Radeon, Display 15,6" Full HD, Antiriflesso, Wi-Fi, Bluetooth 5, Windows 11, Webcam HD, Lettore di Schede, Argento
399,99 € (a partire da 18 Marzo 2024 14:37 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Microsoft Surface Book 2 13.5" - Core i5, 8 GB RAM, 256 GB (Clavier Britannico QWERTY) (ricondizionato)
356,89 € (a partire da 18 Marzo 2024 15:18 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)2015 Apple iPad Mini 4 (7.9 pollici, Wi-Fi, 128GB) - Argento (Ricondizionato)
133,89 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)w+ crea un nuovo file in lettura/scrittura; se il file esiste viene cancellato il contenuto
a aggiunge (append) alla fine del file; se il file non esiste viene creato.
a+ aggiunge e legge a partire dalla fine del file; se il file non esiste viene creato.
Inoltre possiamo specificare se il file è binario o di testo inserendo rispettivamente la lettera b o t. Se si omette quest’ultimo carattere, allora di default si considera la t, ovvero come file di testo.
Se l’operazione di apertura è eseguita con successo si ha come valore di ritorno un puntatore al file aperto, altrimenti restituisce il valore NULL.
Esempi di utilizzo di fopen in C
Facciamo adesso degli esempi di utilizzo di questa funzione:
FILE *fp;
fp=fopen(“coding.txt“, “w+t“);
In questo caso si apre un file di testo (t) di nome coding.txt in lettura e scrittura (w+). Attenzione, se il file non esiste allora si crea automaticamente, altrimenti il contenuto del file preesistente si perderà.
Qualora non si volesse cancellare il contenuto del file, ma semplicemente aggiungerlo alla fine del contenuto precedente, si dovrebbe utilizzare la modalità a (append). Se poi si desidera anche leggerlo, allora occorre utilizzare la modalità a+(aggiunge e legge).
Associamo in questo caso la variabile puntatore fp, nota come file pointer, al file di nome coding.txt. Dopo che il file viene aperto si utilizza il file pointer fp per scrivere o leggere le informazioni.
Conviene sempre fare dei controlli e vedere se ci sono stati errori durante l’apertura del file:
FILE *fp;
if ((fp=fopen(“coding.txt“, “w+t“))==NULL)
printf(“Errore nell’apertura del file!”);
else
…
Samsung Galaxy Chromebook Go, Computer Portatile XE340XDA-KA1IT Chrome OS, Processore Intel Celeron, Display Screen 14” Full HD LED, RAM 4GB, Memoria eMMC 64GB, USB-C, Silver (Versione Italiana)
259,00 € (a partire da 18 Marzo 2024 14:37 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Microsoft Surface Pro 6 12.3" - Core i5, 8GB RAM, 256GB SSD - Argento (Ricondizionato)
447,89 € (a partire da 18 Marzo 2024 15:18 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Apple iPad Pro 11 (2nd Gen) 1TB Wi-Fi - Grigio Siderale (Ricondizionato)
(a partire da 18 Marzo 2024 15:18 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Il fallimento avviene quando ad esempio cerchiamo di scrivere in un file di sola lettura, oppure cerchiamo di aprire un file che non esiste.
Per il momento abbiamo solo introdotto la funzione fopen in C, nelle prossime lezioni faremo degli esempi d’uso e introdurremo le altre funzioni per gestire i file come fclose, fread, fwrite, fseek, ecc.
Alcuni link utili
Somma elementi diagonale principale di una matrice
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice