La manipolazione dei file in C avviene utilizzando la libreria <stdio.h>, che fornisce funzioni per aprire, leggere, scrivere e chiudere i file.
Un file in C è gestito attraverso un puntatore di tipo FILE*, che viene utilizzato nelle varie operazioni.
Le operazioni principali sui file includono:
fopen(), specificando il percorso e la modalità di aperturafscanf(), fprintf(), fgets(), fputs(), fread(), fwrite()fclose() per liberare le risorseFILE* e l'uso di feof() o ferror().#include <stdio.h>
int main() {
FILE *file = fopen("testo.txt", "w"); /* Apertura del file in modalità scrittura */
if (file == NULL) {
printf("Errore nell'apertura del file.\n");
return 1;
}
fprintf(file, "Scrivo questo testo nel file.\n"); /* Scrittura nel file */
fclose(file); /* Chiusura del file
return 0;
}
fopen() accetta due parametri: il nome del file e la modalità di apertura.
Ecco alcune modalità comuni:
"r" → Apre un file per lettura (deve esistere)"w" → Crea un file per scrittura (sovrascrive se esiste)"a" → Apre un file in modalità aggiunta (append)"r+" → Apre un file per lettura e scrittura"w+" → Crea un file per lettura e scrittura (cancella se esiste)"a+" → Apre o crea un file per lettura/scrittura, mantenendo il contenuto#include <stdio.h>
int main() {
FILE *file = fopen("testo.txt", "r"); /* Apertura in modalità lettura */
if (file == NULL) {
printf("Errore nell'apertura del file.\n");
return 1;
}
char riga[100];
while (fgets(riga, sizeof(riga), file) != NULL) { /* Lettura riga per riga */
printf("%s", riga);
}
fclose(file);
return 0;
}
Per lavorare con dati binari si usano fread() e fwrite(), che leggono e scrivono blocchi di dati.
#include <stdio.h>
typedef struct {
char nome[20];
int eta;
} Persona;
int main() {
Persona p = {"Mario", 30};
FILE *file = fopen("dati.bin", "wb"); /* Scrittura binaria */
fwrite(&p, sizeof(Persona), 1, file);
fclose(file);
return 0;
}