Ragazzi buonasera,
devo fare un progetto che permetta di gestire i dati di un atleta (nome, cognome, codicefiscale, ecc.) mediante l'utilizzo di una struttura a lista.
Non ho problemi a costruire la struttura dati, nè a scrivere gli algoritmi che permettono di inserire/ricercare/visualizzare i dati.
Il problema sorge quando devo prelevare i dati da un file di log, in quanto mi serve un programma che ad ogni avvio inserisca nei vari campi della lista anche i valori che sono stati inseriti in lista al precedente avvio (quindi i dati sono stati salvati nel file di log).
Il problema che ho consiste nella lettura da file nel caso in cui ci si trova un campo nome composto da una stringa con spazio (es. Francesco Pio).
E' una settimana che ci lavoro e non so più dove sbattere la testa. Il file di log è fatto così:
001\tFrancesco Pio\tRossi\t01/03/1980\tLuogodinascita\tCodicefiscale
002\tMarco\tBianchi\t02/02/1990\tLuogodinascita\tCodicefiscale
Se presuppongo di avere tutti i campi senza spazi è scontato fare una fscanf, ma il campo nome può ovviamente anche contenere spazi.
Come ultima spiaggia avevo pensato a una cosa del genere, ma compio errori di segmentazione. Aiutatemi pleasee
lista_giocatori = fopen("giocatori.txt", "r");
while(!feof(lista_giocatori))
{
fscanf(lista_giocatori, "%03d", &id);
i = 0;
while(fgetc(lista_giocatori) != '\t')
{
nome[i] = fgetc(lista_giocatori)
i++;
}
i = 0;
while(fgetc(lista_giocatori) != '\t')
{
cognome[i] = fgetc(lista_giocatori);
i++;
}
i = 0;
while(fgetc(lista_giocatori) != '\t')
{
data_nascita[i] = fgetc(lista_giocatori);
i++;
}
i = 0;
while(fgetc(lista_giocatori) != '\t')
{
luogonascita[i] = fgetc(lista_giocatori);
i++;
}
i = 0;
while(fgetc(lista_giocatori) != '\t')
{
codicefiscale[i] = fgetc(lista_giocatori);
i++;
}