Esercizio con i file in C

Oggi svolgeremo un semplice esercizio sui file in C per esercitarci con le funzioni appena studiate, prima di proseguire oltre.

Creare una semplice struct paesi che contiene il nome del paese, la regione e il numero di abitanti. Scrivere quindi un programma in C, che dichiara una tabella p di tipo paesi, apra in scrittura un file di testo di nome “media.dat” e inserisca i dati di 4 paesi. Al termine visualizzare la media degli abitanti.

Controlliamo sempre che non ci siano errori per l’apertura del file con l’istruzione if((fp=fopen(“media.dat”, “wt”))==NULL) e diamo un messaggio di errore se il puntatore restituisce il valore NULL.

Ricordiamo inoltre che con la modalità w si crea un nuovo file e se già esiste con lo stesso nome esso viene sovrascritto.

Con un ciclo for inseriamo i dati e a mano a mano li sommiamo nella variabile media, precedentemente inizializzata a zero.

Infine calcoliamo la media e visualizziamo il risultato così ottenuto.

Ecco dunque il listato completo dell’esercizio sui file in C.

#include <stdio.h>
#include <stdlib.h>
#define N 4

typedef struct {
	char paese[30];
	char regione[20];
	int abitanti;
}paesi;

int main() {
	FILE *fp;
	int i;
	paesi p[N];
	float media=0;

	if((fp=fopen("media.dat", "wb"))==NULL) {
		printf("Errore nell'apertura del file'");
		exit(1);
	}
	
	for(i=0;i<N;i++) {
		printf("paese: ");
		scanf("%s", p[i].paese);
		printf("regione: ");
		scanf("%s", p[i].regione);
		printf("Abitanti: ");
		scanf("%d", &p[i].abitanti);
		fflush(stdin);
		fprintf(fp,"%s %s %d\n", p[i].paese, p[i].regione, p[i].abitanti);
		media+=p[i].abitanti;
	}
        fclose(fp);
	media/=N;
	printf("La media degli abitanti e': %10.2f \n", media);	

	return 0;
}

Lo stesso esercizio si poteva facilmente risolvere anche con l’uso delle funzioni.

Questo è un semplice esercizio sui file in C utile ad approfondire le funzioni fopen() e fprintf() precedentemente studiate e le strutture in C.

Alcuni link utili

Media per riga e per colonna

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Sommare dei numeri di una matrice

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *