I migliori prodotti

La funzione fputs in C permette di scrivere in un file delle stringhe, precedentemente aperto con la funzione fopen.

La fputs ha la seguente sintasssi:

int fputs(char *stringa, FILE *fp)

Quindi la funzione invia una stringa e la memorizza nella locazione di memoria puntata da stringa. FILE *fp è il puntatore al file restituito dalla funzione fopen, così come nelle altre funzioni che abbiamo studiato finora.

La funzione ritorna zero se non si verificano errori, altrimenti ritorna un valore diverso da zero o la costante EOF.


Esempio di utilizzo di fputs in C

Facciamo dunque un semplice esempio che permette di aprire un file in lettura e copiare riga per riga il contenuto di questo file in uno nuovo.

Facciamo l’esempio richiedendo in input entrambi i file.

Inizializziamo a zero il contatore della riga, nr, per conoscere quante righe sono state copiate.

Chiediamo in input i nomi dei file e apriamo il file con la funzione fopen. Visualizziamo un messaggio di errore se ci sono problemi nell’apertura dei file.

Dopo utilizziamo un ciclo while con la funzione fgets, che come abbiamo spiegato nella lezione precedente, prende tre parametri: la stringa, il numero di caratteri e il puntatore al file. Finché non arriviamo a leggere tutte le stringhe presenti nel file in lettura, copiamo con la funzione fputs ciascuna stringa nel nuovo file aperto in scrittura.

Infine chiudiamo il file usando la funzione fclose e stampiamo il risultato ottenuto.

Ecco dunque il listato completo:

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

#define N 100

int main()
{
   	FILE *fpin, *fpout;
	char nome_in[FILENAME_MAX], nome_out[FILENAME_MAX], r[N];
   	int nr=0;

   	printf("Nome del file da copiare:");
   	gets(nome_in);
   	
   	printf("Nome del nuovo file:");
   	gets(nome_out);

   	if ((fpin=fopen(nome_in,"rt"))==NULL) {
		printf("Errore nell'apertura del file");
		exit(1);
   	}
   	
   	if ((fpout=fopen(nome_out,"wt"))==NULL) {
		printf("Errore nell'apertura del file");
		exit(1);
   	}

   	while(fgets(r,N,fpin) != NULL) {
           nr++;
           fputs(r, fpout);
   	}                                    
   
   	fclose(fpin);
   	fclose(fpout);
   	printf("Totale righe copiate: %d\n", nr);
   
   	return 0;
}

A questo semplice esempio sulla funzione fputs in C seguiranno tanti altri esempi al fine di consolidarne l’uso.

Alcuni link utili

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C