[C] problema sscanf

studente_studente
Buonasera! Sto facendo una funzione che mi controlla se una data viene prima o dopo di un'altra.. solo che una delle due e' campo di una struttura e credo che questo crei dei problemi. Specifico che voglio fare una cosa molto semplice senza puntatori o cose avanzate.. proprio qualcosa basic per prendere mano con il linguaggio c..


La chiamo nel main con:
 funzione(data, dimensionedata1,struttura[j].crono, dimensione) 


dove struttura[j]crono è un stringa del tipo GIORNO/MESE/DATA:ORA:MINUTI:SECONDI ma dato che mi serve solo la data ho fatto così: (ma credo che sia qui il problema!! e non so perché..)

     sscanf(SecondaData, "%d/%d/%d/*c/*d/*c/*d/*c/*d", &d, &m, &y); 


Sapreste dirmi se effettivamente è sbagliato? e perché?!?!

Grazie in anticipo per la pazienza e le eventuali risposte

Risposte
apatriarca
Prima di tutto che cosa significa che ti crea dei problemi? Quali sono gli errori che ottieni e per quale ragione ritieni che il problema sia effettivamente in quella chiamata a sscanf?

La stringa di formato è effettivamente completamente sbagliata, ma dovrebbe scriverti i primi tre valori lo stesso. Che valore viene restituito dalla funzione?

studente_studente
Il compilatore non mi segnala nessun problema .. e' proprio questo il problema!

tutto il resto e' per forza giusto quindi sono andato ad esclusione infatti la funzione una volta suddivisi i campi delle due date deve confrontarli : confronta i giorni, i mesi, gli anni e mi ritorna un valore intero se la data viene prima o dopo della seconda data(quella della struttura) ma il debug non va dentro le funzioni quindi non so dire che valore mi da.. certo che però qualcosa mi da perché poi quando questo valore lo uso in un'altra funzione questa fa il suo lavoro(sbagliato di conseguenza ma lo fa).. ma l'altra funzione funziona bene solo che da valori sbagliati quindi sono arrivato a pensare che sia qui l'errore..

ma poi perché è sbagliata? a sscanf dico di leggere 3 interi e gli altri caratteri e interi li butta via..

apatriarca
Non è quello che fa la stringa.. Comunque puoi entrare nella funzioni con qualsiasi debugger..

studente_studente
Ora riprovo.. Ma scusa allora come sarebbe fatto correttamente? salvo gli altri dati e non li uso?

Che vuol dire non è quello che fa la stringa?!

studente_studente
Ho risolto il problema!! Anche se non era la sscanf!

Sarei comunque curioso di sapere le eventuali opinioni

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.