🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Gestione File in C

Codegrind Team•Jul 12 2024

Ecco degli esercizi semplici con soluzione per praticare la gestione dei file in C.

Esercizio 1: Lettura di un File di Testo

Leggere un file di testo riga per riga e stamparne il contenuto.
#include <stdio.h>

int main() {
    FILE *file = fopen("testo.txt", "r");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    char buffer[256];
    while (fgets(buffer, sizeof(buffer), file)) {
        printf("%s", buffer);
    }

    fclose(file);
    return 0;
}

Esercizio 2: Scrittura in un File di Testo

Scrivere una stringa in un file di testo.
#include <stdio.h>

int main() {
    FILE *file = fopen("output.txt", "w");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    fprintf(file, "Ciao, mondo!\n");
    fclose(file);
    return 0;
}

Esercizio 3: Aggiungere Dati a un File di Testo

Aggiungere una stringa alla fine di un file di testo esistente.
#include <stdio.h>

int main() {
    FILE *file = fopen("output.txt", "a");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    fprintf(file, "Aggiunta di una nuova riga\n");
    fclose(file);
    return 0;
}

Esercizio 4: Copiare il Contenuto di un File

Copiare il contenuto di un file in un altro file.
#include <stdio.h>

int main() {
    FILE *src = fopen("input.txt", "r");
    FILE *dst = fopen("output.txt", "w");

    if (src == NULL || dst == NULL) {
        printf("Errore nell'apertura dei file\n");
        return 1;
    }

    char buffer[256];
    while (fgets(buffer, sizeof(buffer), src)) {
        fputs(buffer, dst);
    }

    fclose(src);
    fclose(dst);
    return 0;
}

Esercizio 5: Contare il Numero di Linee in un File

Contare il numero di linee in un file di testo.
#include <stdio.h>

int main() {
    FILE *file = fopen("testo.txt", "r");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    int count = 0;
    char buffer[256];
    while (fgets(buffer, sizeof(buffer), file)) {
        count++;
    }

    printf("Numero di linee: %d\n", count);
    fclose(file);
    return 0;
}

Esercizio 6: Lettura e Scrittura di Dati Binari

Leggere e scrivere dati binari in un file.
#include <stdio.h>

typedef struct {
    int id;
    char nome[50];
} Record;

int main() {
    Record rec1 = {1, "Mario"};
    Record rec2;

    FILE *file = fopen("dati.bin", "wb");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    fwrite(&rec1, sizeof(Record), 1, file);
    fclose(file);

    file = fopen("dati.bin", "rb");
    if (file == NULL) {
        printf("Errore nell'apertura del file\n");
        return 1;
    }

    fread(&rec2, sizeof(Record), 1, file);
    printf("ID: %d, Nome: %s\n", rec2.id, rec2.nome);
    fclose(file);

    return 0;
}