Funzione fwrite per scrivere in un file in C

La funzione fwrite in C è una funzione che permette di scrivere dei blocchi di dati su un file precedentemente aperto con la funzione fopen. Di seguito viene riportata la sua sintassi:



size_t fwrite(const void *ptr, size_t dim, size_t num, FILE *fp);


dove ptr è il puntatore all’array di elementi da scrivere sul file, dim rappresenta la dimensione in byte di ciascun elemento da scrivere, num è il numero di elementi di dimensione dim da scrivere e fp è il puntatore al file su cui scrivere i dati, ottenuto dalla funzione fopen. La funzione fwrite restituisce una variabile di tipo size_t che indica il numero di elementi scritti sul file, che in caso di successo sarà uguale al valore num, mentre in caso di errore assumerà un valore minore di num.

Esempio scrittura di una stringa su file con la funzione fwrite in C

Di seguito viene riportato un esempio di programma in C in grado di scrivere una stringa, precedentemente definita, su un file utilizzando la funzione fwrite.
In particolare, una volta aperto il file con la funzione fopen e verificato che il puntatore restituito non sia NULL, usiamo la funzione fwrite per scrivere la stringa sul file.

Riguardando la sintassi della fwrite, notiamo che dobbiamo inserire il contenitore degli elementi da scrivere (nel nostro caso l’array di caratteri contenente la stringa), la dimensione in byte di ciascun carattere (essendo dei caratteri possiedono una dimensione di 1 byte ciascuno), il numero di elementi da scrivere (usiamo la funzione strlen per ottenere la lunghezza della stringa) e il puntatore al file su cui scrivere.

A questo punto non resta che chiudere il file con la funzione fclose, eseguire il codice e visualizzare il contenuto del file utilizzato.



#include <stdio.h>
#include <string.h>

int main(){
    char str[] = "Benvenuti su Learnex.it";
    FILE* fp;
    
    fp = fopen("file.txt", "w");
    
    if(fp == NULL){
        printf("Errore durante l'apertura del file!\n");
    } else {
        fwrite(str, 1, strlen(str), fp);
    }
    
    fclose(fp);

    return 0;
}


Esempio scrittura input utente su file con la funzione fwrite in C

Il seguente programma in C è in grado di chiedere all’utente di inserire del testo di lunghezza massima MAX e di immagazzinarla all’interno di un file.
Nello specifico, dopo aver aperto il file e verificato che non ci siano errori, chiediamo all’utente di inserire delle parole usando la funzione fgets, in modo da poter specificare il numero massimo di caratteri da leggere dallo stdin e di immagazzinarli in un apposito array.
Successivamente la stringa letta viene scritta sul file, precedentemente aperto, utilizzando la funzione fwrite.

Una volta eseguito il codice possiamo andare a verificare il contenuto del file utilizzato.



#include <stdio.h>
#include <string.h>
#define MAX 100

int main(){
    char str[MAX];
    FILE* fp;
    
    fp = fopen("file.txt", "w");
    
    if(fp == NULL){
        printf("Errore durante l'apertura del file!\n");
    } else {
        printf("Inserisci testo: ");
        fgets(str, MAX, stdin);
        fwrite(str, 1, strlen(str), fp);
    }
    
    fclose(fp);

    return 0;
}

Indice pagine linguaggio C: