Buongiorno a tutti, ho riscontrato un problema in un esercizio che richiedeva di leggere dei dati da un file di testo relativi a una gara e di memorizzarli in una lista. Il file è così formattato: nome;cognome;minuti'secondi''centesimi. Successivamente stampare nome e cognome dei partecipanti.
codice:
#include <stdio.h>
#include <stdlib.h>
typedef struct gara *gara_link;
struct gara{
char *nome;
char *cognome;
int tempo;
gara_link next;
};
int main()
{
FILE *fp = fopen ("risultati.txt", "r");
if (fp == NULL) {
printf("Impossibile aprire file risultati.txt");
}
struct gara user;
user.nome = malloc (15 * sizeof(char));
user.cognome = malloc (15 * sizeof(char));
while (!feof(fp)) {
fscanf(fp, "%20[^;];%30[^;]", user.nome, user.cognome);
}
printf("%s %s", user.nome, user.cognome);
return 0;
}
Mi hanno consigliato di usare la fscanf con l'operatore %20[^;], dove %20 comporta la lettura di 20 caratteri prima del ';' ma non sono sicuro di ciò. Grazie dell'attenzione