Edizione didattica italiana
File e flussi in C
Apri, leggi e scrivi file verificando risultati ed errori.

fopen restituisce un flusso oppure NULL in caso di errore. La modalità sceglie lettura, aggiunta o sostituzione; w può troncare un file esistente. Controlla il risultato prima di fprintf, fgets e altre operazioni.
Controlla il ciclo con il risultato della funzione di lettura, non con feof prima della lettura. fgets conosce la capacità del buffer e può leggere una riga lunga in più parti. Distingui fine file ed errore quando serve.
Chiudi con fclose e controlla gli errori di scrittura. Nel compilatore remoto i file possono durare una sola esecuzione: non è archiviazione permanente né accesso ai file del tuo computer.
Codice sorgente
#include <stdio.h>
#include <stdlib.h>
int main(void) {
const char *filepath = "/tmp/demo_output.txt";
FILE *fout = fopen(filepath, "w");
if (fout == NULL) {
perror("Error opening file for writing");
return EXIT_FAILURE;
}
fprintf(fout, "Hello from the online C compiler file sandbox!\nLine 2: Ephemeral file storage.\n");
fclose(fout);
FILE *fin = fopen(filepath, "r");
if (fin == NULL) {
perror("Error opening file for reading");
return EXIT_FAILURE;
}
char buffer[256];
printf("--- File Content Readout ---\n");
while (fgets(buffer, sizeof(buffer), fin) != NULL) {
printf("%s", buffer);
}
fclose(fin);
return EXIT_SUCCESS;
}Apri nel compilatoreRisultato atteso
--- File Content Readout --- Hello from the online C compiler file sandbox! Line 2: Ephemeral file storage.
Domande frequenti
Perché il codice e alcuni risultati restano in inglese?
Parole chiave C, identificatori, commenti del programma e output attesi restano quelli originali per preservare codice eseguibile e test coerenti. Spiegazioni e istruzioni sono tradotte.