Ciao a tutti/e,
ho un problema con la funzione sscanf().
Il mio programma deve esaminare un file di testo contenente l'albo d'oro del Giro delle Fiandre, in cui ogni riga è fatta così:
1913;Belgio;Paul Deman;Belgio;Joseph Van Daele;Belgio;Victor Doms
Con la funzione fgets() leggo una riga per volta dal file e la salvo nella stringa s:
while(fgets(s, 120, f)!=NULL){
Poi per estrarre i primi 3 campi (anno, nazione e nome del vincitore, che salvo in una variavile "strutturata" p) uso la funzione sscanf in questo modo:
sscanf(s, "%d;%s;%s;%s;%s;%s;%s", &p.anno, &p.nazPrimo, &p.nomePrimo, &p.nazSecondo, &p.nomeSecondo, &p.nazTerzo, &p.nomeTerzo);
Il problema è che gli spazi bianchi tra il nome e il cognome del vincitore, o nel nome di alcune nazioni (tipo Regno Unito o Paesi Bassi), non mi permettono di estrarre le informazioni nel modo corretto. Ad esempio per quanto riguarda il 1913 vengono estratti in modo giusto l'anno e la nazione ma non il nome e cognome: viene estratto solo il nome "Paul", tralasciando il cognome "Deman". Pensavo che la funzione sscanf() leggesse tutto il testo compreso tra i due delimitatori ; invece no....come posso fare? Si può usare lo stesso la funzione sscanf() o devo analizzare il contenuto della stringa s carattere per carattere?
Grazie delle risposte, ciao!
Mauro