Iniciando en C - Parte 3

8 de Junio de 2024 - ed. hace: 5 meses, 2 semanas


Introducción al lenguaje de programación C, tercera parte. El contenido de este post es una traducción al idioma español de la pagina w3schools.com/c la cual solo se encuentra disponible en inglés


Manejo de Archivos

En C, se puede crear, abrir, leer y escribir archivos declarando un puntero del tipo FILE, y usando la función fopen()

#include <stdio.h>

FILE *fptr;
fptr = fopen(filename, mode);

FILE es básicamente un tipo de dato, y se puede crear una variable puntero para trabajar con fptr. Por ahora esta linea no es importante. Solo es necesaria cuando se trabaja con archivos

Para abrir un archivo usa la funcion fopen() la cual recibe 2 parametros

Parametro Descripción
filename El nombre del archivo a abrir (o crear), ej. filename.txt
mode Un solo caracter que representa lo que se desea hacer con el archivo, (leer, esribir o anexar)
- w: Escribir
- a: Anexar
- r: Leer

Crear un archivo

Para crear se usa el modo w, dentro de la función fopen(). Si no existe, se crea

En este ejemplo se usan rutas relativas

FILE *fptr;

//Crear archivo
fptr = fopen("./files/filename.txt", "w");

//Cerrar el archivo
fclose(fptr);

Escribir en un archivo

Se usa w. Y la función fprintf()

FILE *fptr;

fptr = fopen("./files/filename.txt", "w");

// Escribir texto en el archivo
fprintf(fptr, "Algún texto");

fclose(fptr);

Anexar contenido al archivo

FILE *fptr;

fptr = fopen("./files/filename.txt", "a");

// Escribir texto en el archivo
fprintf(fptr, "\notro texto, en otra linea");

fclose(fptr);

Leer contenido del archivo

#include <stdio.h>

int main(){
    FILE *fptr;

    fptr = fopen("./files/filename.txt", "r");

    char texto[100];
    fgets(texto, 100, fptr);
    printf("%s", texto);

    fclose(fptr);

    return 0;
}

Leer todo el contenido del archivo

#include <stdio.h>

int main(){
    FILE *fptr;

    fptr = fopen("./files/filename.txt", "r");

    char texto[100];

    while(fgets(texto, 100, fptr)){
        printf("%s", texto);
    }

    fclose(fptr);

    return 0;
}

Buenas prácticas

Si se intenta abrir para lectura un archivo inexistente, fopen() retorna NULL.

Como buena práctica se usa un if para testear NULL y se imprime algún texto informativo cuando el archivo no existe

#include <stdio.h>

int main(){
    FILE *fptr;

    fptr = fopen("./files/not_exists.txt", "r");
    char texto[100];

    if(fptr != NULL){
        while(fgets(texto, 100, fptr)){
            printf("%s", texto);
        }
    } else {
        printf("No fue posible abrir el archivo (existe?)\n");
    }

    fclose(fptr);

    return 0;
}


Iniciando en C



Tags

  • Categoría(s):
  • Desarrollo

  • Volver al blog