La gestió d'arxius és una part fonamental de la programació en C, ja que permet als programes llegir i escriure dades en arxius emmagatzemats en el sistema de fitxers. Això és essencial per a moltes aplicacions, com ara bases de dades, processadors de text, i qualsevol aplicació que necessiti emmagatzemar informació de manera persistent.

Conceptes Clau

  1. Tipus d'Arxius

  • Arxius de text: Contenen dades en format de text llegible per humans. Cada línia d'un arxiu de text acaba amb un caràcter de nova línia (\n).
  • Arxius binaris: Contenen dades en format binari, que no són directament llegibles per humans. Són més eficients per emmagatzemar dades complexes com estructures i imatges.

  1. Operacions Bàsiques

  • Obrir un arxiu: Abans de llegir o escriure en un arxiu, cal obrir-lo utilitzant la funció fopen().
  • Tancar un arxiu: Després de completar les operacions amb un arxiu, cal tancar-lo amb la funció fclose().
  • Llegir d'un arxiu: Utilitzar funcions com fscanf(), fgets(), o fread().
  • Escriure en un arxiu: Utilitzar funcions com fprintf(), fputs(), o fwrite().

  1. Modes d'Apertura

Quan s'obre un arxiu amb fopen(), es pot especificar el mode d'apertura:

  • "r": Llegeix. L'arxiu ha d'existir.
  • "w": Escriu. Crea un arxiu nou o sobreescriu l'existent.
  • "a": Afegeix. Escriu al final de l'arxiu.
  • "r+": Llegeix i escriu. L'arxiu ha d'existir.
  • "w+": Llegeix i escriu. Crea un arxiu nou o sobreescriu l'existent.
  • "a+": Llegeix i escriu. Escriu al final de l'arxiu.

Exemple Pràctic

Obrir i Tancar un Arxiu

#include <stdio.h>

int main() {
    FILE *file;
    
    // Obrir un arxiu en mode d'escriptura
    file = fopen("example.txt", "w");
    
    if (file == NULL) {
        printf("No s'ha pogut obrir l'arxiu.\n");
        return 1;
    }
    
    // Escriure en l'arxiu
    fprintf(file, "Hola, món!\n");
    
    // Tancar l'arxiu
    fclose(file);
    
    return 0;
}

Llegir d'un Arxiu

#include <stdio.h>

int main() {
    FILE *file;
    char buffer[100];
    
    // Obrir un arxiu en mode de lectura
    file = fopen("example.txt", "r");
    
    if (file == NULL) {
        printf("No s'ha pogut obrir l'arxiu.\n");
        return 1;
    }
    
    // Llegir una línia de l'arxiu
    if (fgets(buffer, 100, file) != NULL) {
        printf("Contingut de l'arxiu: %s", buffer);
    }
    
    // Tancar l'arxiu
    fclose(file);
    
    return 0;
}

Exercicis Pràctics

Exercici 1: Crear i Escriure en un Arxiu

Crea un programa que obri un arxiu anomenat data.txt en mode d'escriptura i escrigui les següents línies:

Línia 1: Hola, món!
Línia 2: Aprenent C és divertit.

Solució

#include <stdio.h>

int main() {
    FILE *file;
    
    file = fopen("data.txt", "w");
    
    if (file == NULL) {
        printf("No s'ha pogut obrir l'arxiu.\n");
        return 1;
    }
    
    fprintf(file, "Línia 1: Hola, món!\n");
    fprintf(file, "Línia 2: Aprenent C és divertit.\n");
    
    fclose(file);
    
    return 0;
}

Exercici 2: Llegir i Mostrar el Contingut d'un Arxiu

Crea un programa que obri l'arxiu data.txt en mode de lectura i mostri el seu contingut línia per línia.

Solució

#include <stdio.h>

int main() {
    FILE *file;
    char buffer[100];
    
    file = fopen("data.txt", "r");
    
    if (file == NULL) {
        printf("No s'ha pogut obrir l'arxiu.\n");
        return 1;
    }
    
    while (fgets(buffer, 100, file) != NULL) {
        printf("%s", buffer);
    }
    
    fclose(file);
    
    return 0;
}

Errors Comuns i Consells

  • No oblidar tancar l'arxiu: Sempre assegura't de tancar l'arxiu amb fclose() per evitar fuites de memòria.
  • Comprovar si l'arxiu s'ha obert correctament: Després de cridar fopen(), comprova si el punter és NULL per assegurar-te que l'arxiu s'ha obert correctament.
  • Utilitzar el mode d'apertura correcte: Assegura't d'utilitzar el mode d'apertura adequat per a l'operació que vols realitzar (lectura, escriptura, etc.).

Conclusió

En aquesta secció, hem après els conceptes bàsics de la gestió d'arxius en C, incloent els tipus d'arxius, les operacions bàsiques, i els modes d'apertura. També hem vist exemples pràctics de com obrir, llegir i escriure en arxius. Aquests coneixements són fonamentals per a qualsevol programador que desitgi treballar amb dades persistents en C.

Curs de Programació en C

Mòdul 1: Introducció al C

Mòdul 2: Tipus de Dades i Variables

Mòdul 3: Flux de Control

Mòdul 4: Funcions

Mòdul 5: Arrays i Strings

Mòdul 6: Punteres

Mòdul 7: Estructures i Unions

Mòdul 8: Assignació Dinàmica de Memòria

Mòdul 9: Gestió d'Arxius

Mòdul 10: Temes Avançats

Mòdul 11: Millors Pràctiques i Optimització

Mòdul 12: Projecte i Avaluació Final

© Copyright 2024. Tots els drets reservats