Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
copi in input_anno, input_mese e input_giorno i dati contenuti in dtm (indefiniti, perché non è stato inizializzato).
Ultima modifica effettuata da gcali il 13/05/2014 alle 15:06
()
Newbie
Messaggi: Iscritto:
Postato alle 15:38
Giovedì, 15/05/2014
Marte111, non so se potrà esserti utile perché è in C++ e non in C, però qualche tempo fa ho messo insieme una classe che potresti usare per "aggirare" l'ostacolo (spero). L'ho provata e riprovata e mi sembra che funzioni tutto a dovere, ma tieni presente che non sono un programmatore e quindi potrei essere incorso in errori e ingenuità. Apprezza la buona volontà!
Magari potresti invece considerare questa coppia di funzioni, che analizzano una stringa "a caccia" di giorno, mese e anno. Volendo puoi invertire l'ordine dei dati cercati come preverisci (ad esempio anno, mese, giorno, o qualsiasi altra combinazione). Nota che è un metodo che "tollera" che vengano scritte date anche in modo impreciso, tipo "sf24/6/ù14hhh", che verrà comunque letto come 24 giugno 2014.
Codice sorgente - presumibilmente C#
// Verifica se c e' o non e' una cifra numerica 0-9.
bool Cifra(char c ){
return( c>='0'&& c<='9');
}
// Analizza la stringa s e immette [g]iorno, [m]ese e [a]nno nei parametri
Aldo ... forse il discorso non è chiaro ... il problema non è estrarre i dati dalla stringa (per cui la singola sscanf va benissimo) ... il problema è che nella stringa i dati NON ci sono. Ok?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
()
Newbie
Messaggi: Iscritto:
Postato alle 18:29
Giovedì, 15/05/2014
Non ci sono no, i dati nella stringa, l'avevi già fatto notare e non mi sembrava il caso di ritornarci. Può sempre riempire un "buffer" con gets(), però, e usarlo nella funzione che ho riportato.
Codice sorgente - presumibilmente C/C++
char buffer[32];
int g, m, a;
gets( buffer );
if( buffer != NULL )
Estrai_GMA( buffer, &g, &m, &a );
Se uno si fida e vuole saltare il controllo di un possibile puntatore NULL restituito da gets() può addirittura sintetizzare così:
Codice sorgente - presumibilmente C/C++
char buffer[32];
int g, m, a;
Estrai_GMA( gets(buffer), &g, &m, &a );
Io di solito mi trovo bene con una cosa del genere.