Online C Compiler
Abrir en el compilador

Edición didáctica en español. El código y sus salidas conservan el original.

Archivos en C

Abre, escribe, lee y cierra archivos con las funciones de la biblioteca estándar.

Abrir en el compilador

Archivos en C
Abre, escribe, lee y cierra archivos con las funciones de la biblioteca estándar.

fopen devuelve un flujo o NULL si no puede abrirlo. El modo determina si lees, añades o reemplazas contenido; abrir con w puede truncar un archivo existente. Comprueba el resultado antes de usar fprintf, fgets u otras operaciones.

Controla el bucle de lectura con el resultado de la función que lee, no con una comprobación anticipada de feof. fgets necesita conocer el tamaño del buffer y puede leer una línea por partes. Distingue fin de archivo de error cuando sea relevante.

Cierra los flujos con fclose y revisa errores de escritura. En el compilador remoto los archivos pueden existir solo durante una ejecución: no los uses como almacenamiento permanente ni supongas acceso a archivos de tu ordenador.

Código C

#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;
}
Abrir en el compilador

Salida esperada

--- File Content Readout ---
Hello from the online C compiler file sandbox!
Line 2: Ephemeral file storage.

Preguntas frecuentes

¿Por qué el código y la salida siguen en inglés?

Las palabras clave, los identificadores y los textos que verifican las pruebas se conservan para no cambiar el programa. Las explicaciones y los controles están traducidos.