Online C Compiler
Apri nel compilatore

Edizione didattica italiana

File e flussi in C

Apri, leggi e scrivi file verificando risultati ed errori.

Apri nel compilatore

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 compilatore

Risultato 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.