codice:#include <stdio.h> #include <string.h> #include <stdlib.h> struct libro { unsigned codice; char titolo[30]; unsigned pagine; }; struct libro *read_libri (const char *filename, unsigned int *pn){ FILE *f; char buffer[500]; f=fopen(filename,"rt"); if(f==NULL) exit(EXIT_FAILURE); struct libro *lib=NULL; int i=0; while(feof(f)==0){ lib = (struct libro *)realloc(lib,(i+1)*sizeof(struct libro)); fgets(buffer, 500, f); lib[i].codice = atoi(strtok(buffer, "\n\r;")); strcpy(lib[i].titolo, strtok(NULL, "\n\r;")); lib[i].pagine = atoi(strtok(NULL, "\n\r;")); i++; } fclose(f); *pn = i; return lib; } int main() { int i; unsigned pn; struct libro *lib = read_libri("input.txt", &pn); for(i = 0; i < pn; i++) { printf("%u;%s;%u\n", lib[i].codice, lib[i].titolo, lib[i].pagine); } free(lib); return 0; }