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;
}