#include <stdio.h>
int * leggi(char *f, char *c)
{
FILE *p;
int i,n, t, s, *ris;
char citta[21];
p = fopen(f, "r");
fscanf(p, "%d",&n);
ris = (int *)malloc(2*sizeof(int));
ris[0] = 0;
ris[1] = 0;
for ( i = 0;i < n;++i)
{
fscanf(p,"%s %d %d", citta, &t, &s);
if ( strcmp(citta,c) == 0 )
{
if (t > ris[0]) ris[0]=t;
ris[1] += s;
Soluzioni degli esercizi sui file
}
}
fclose(p);
return ris;
}
main () /* programma principale */
{
int *totale;
totale=leggi("tele.txt","ROMA");
printf("Piu lunga: %d totale scatti: %d\n", totale[0], totale[1]);
}
Il telefono
Programma che lavora sui file, un file contiene una lista di telefonate effettuate da un utente, il file è così composto come segue:
3 ROMA 230 5 MILANO 30 3 ROMA 20 1
La prima riga del file contiene il numero di telefonate effettuate, le altre righe contengono le città di destinazione della telefonata, la durata in secondi e il numero di scatti, ed il nome di una città e restituisce, relativamente alla città in questione, il programma permette di prendere dal file la durata della telefonata più lunga ed il numero totale di scatti.