🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi lavorare con i file C

Codegrind Team•Jul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi su come lavorare con i file in C.

Esercizio 1

Creare un nuovo file e scriverci una stringa:
#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "w");

    if (file != NULL) {
        fprintf(file, "Questo è un esempio di scrittura su file.");
        fclose(file);
        printf("File creato e scrittura completata.\n");
    } else {
        printf("Errore nell'apertura del file.\n");
    }

    return 0;
}

Esercizio 2

Leggere il contenuto di un file di testo e stamparlo a schermo:
#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "r");

    if (file != NULL) {
        char carattere;

        while ((carattere = fgetc(file)) != EOF) {
            printf("%c", carattere);
        }

        fclose(file);
    } else {
        printf("Errore nell'apertura del file.\n");
    }

    return 0;
}

Esercizio 3

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

int main() {
    FILE *file_origine = fopen("origine.txt", "r");
    FILE *file_destinazione = fopen("destinazione.txt", "w");

    if (file_origine != NULL && file_destinazione != NULL) {
        char carattere;

        while ((carattere = fgetc(file_origine)) != EOF) {
            fputc(carattere, file_destinazione);
        }

        fclose(file_origine);
        fclose(file_destinazione);
        printf("Copia del file completata.\n");
    } else {
        printf("Errore nell'apertura dei file.\n");
    }

    return 0;
}

Esercizio 4

Verificare se un file esiste:
#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "r");

    if (file != NULL) {
        printf("Il file esiste.\n");
        fclose(file);
    } else {
        printf("Il file non esiste.\n");
    }

    return 0;
}

Esercizio 5

Aggiungere del testo a un file esistente:
#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "a");

    if (file != NULL) {
        fprintf(file, "Questo testo verrĂ  aggiunto al file.");
        fclose(file);
        printf("Aggiunta di testo al file completata.\n");
    } else {
        printf("Errore nell'apertura del file.\n");
    }

    return 0;
}

Esercizio 6

Contare il numero di caratteri, parole e righe in un file di testo:
#include <stdio.h>

int main() {
    FILE *file = fopen("test.txt", "r");

    if (file != NULL) {
        int caratteri = 0;
        int parole = 0;
        int righe = 0;
        char carattere;

        while ((carattere = fgetc(file)) != EOF) {
            caratteri++;

            if (carattere == ' ' || carattere == '\n') {
                parole++;
            }

            if (carattere == '\n') {
                righe++;
            }
        }

        fclose(file);

        printf("Numero di caratteri: %d\n", caratteri);
        printf("Numero di parole: %d\n", parole);
        printf("Numero di righe: %d\n", righe);
    } else {
        printf("Errore nell'apertura del file.\n");
    }

    return 0;
}

Esercizio 7

Rinominare un file:
#include <stdio.h>

int main() {
    if (rename("vecchio_nome.txt", "nuovo_nome.txt") == 0) {
        printf("File rinominato con successo.\n");
    } else {
        printf("Errore nella rinomina del file.\n");
    }

    return 0;
}

Esercizio 8

Eliminare un file:
#include <stdio.h>

int main() {
    if (remove("file_da_elimianre.txt") == 0) {
        printf("File eliminato con successo.\n");
    } else {
        printf("Errore nell'eliminazione del file.\n");
    }

    return 0;
}

Esercizio 9

Creare una directory:
#include <stdio.h>

int main() {
    if (mkdir("nuova_directory") == 0) {
        printf("Directory creata con successo.\n");
    } else {
        printf("Errore nella creazione della directory.\n");
    }

    return 0;
}

Esercizio 10

Eliminare una directory:
#include <stdio.h>

int main() {
    if (rmdir("directory_da_elimianre") == 0) {
        printf("Directory eliminata con successo.\n");
    } else {
        printf("Errore nell'eliminazione della directory.\n");
    }

    return 0;
}