Oppure

Loading
08/02/19 23:28
maaaaaat12
Salve a tutti! Ho il seguente problema: mi viene fornita una data tramite linea di comando (acquisisco quindi una stringa) nel formato gg/mm/aaaa e devo estrarne in tre variabili intere (giorno, mese e anno) i corrispondenti valori, come faccio?
Grazie in anticipo.
aaa
09/02/19 6:56
Usa la funzione sscanf
Ultima modifica effettuata da 09/02/19 6:57
09/02/19 12:36
AldoBaldo
Io in un caso del genere ho usato strtol().
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
09/02/19 13:53
Con la strtol ti servono 3 chiamate a funzioni, la sscanf fa tutto in una volta
09/02/19 18:02
AldoBaldo
Vero, però PER QUEL POCO CHE SO FARE IO, con strtol (anzi, meglio ancora con strtoul, ché giorni, mesi e anni negativi non hanno un gran senso) riesco ad avere più controllo sulla verifica di eventuali "storture" del formato, anche se al prezzo di un po' di righe di codice in più e, presumibilmente, di un minimo di lavorìo in più per il computer.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
09/02/19 18:57
Perché affermi di avere più controllo?
09/02/19 20:45
AldoBaldo
Ribadendo quel "per quel poco che so fare io", nella mia soluzione uso il primo parametro per individuare il punto nel quale voglio che cominci ogni conversione e il secondo parametro per trovare quello dove finisce, quindi posso fare un controllo puntuale di tutto quello che ci sta "intorno", carattere per carattere. Non sono capace di replicare un comportamento simile con sscanf().
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
09/02/19 21:49
Non devi fare nulla, fa tutto la sscanf.