12/05/14 16:06
Marte111
ho quasi fatto .. ma non so il motivo perché mi chiede subito entrata o uscita. e mi salta l'inserimento della descrizione..
vi posto il codice:
void inserimento()
{
finito='n';
while((finito=='n') || (finito=='N'))
{
system("cls");
printf("Inserisci la data in sequenza 00 00 0000 senza trattini : ");
char dtm[100];
sscanf(dtm, "%d-%d-%d", &input_anno, &input_mese, &input_giorno);
//2014-05-12
printf("Inserisci la descrizione : ");
fgets(r.descrizione, 255, stdin);
fflush(stdin);
printf("Cassa (e/E) o (u/U) : ");
scanf("%c", &cassa);
if((cassa=='e') || (cassa=='E'))
{
r.cassa_scelta = 1;
}else if((cassa=='u') || (cassa=='U'))
{
r.cassa_scelta = 2;
}
fflush(stdin);
printf("Inserisci l'importo : ");
scanf("%lf", &r.importo);
fflush(stdin);
printf("Finito? S(i) oppure N(o) --> ");
scanf("%c", &finito);
salva_nel_db();
}
}
la struttura dati della struct è cosi:
typedef struct {
char data[10];
char descrizione[256];
int cassa_scelta;
double importo;
}registro_dati;
registro_dati r;
e poi ci sono int input_giorno, int input_mese, int input_anno.
idea?
grazie mille e a domani.. buona serata.
Ultima modifica effettuata da Marte111 12/05/14 16:08
aaa
12/05/14 18:32
nessuno
Perché hai usato la
sscanf
?
Sai a cosa serve?
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à.
13/05/14 13:05
gcali
sscanf() prende in input dati formattati
da una stringa, non dallo stdin. E non è vero che prende più valori della scanf(). Ecco qui:
tutorialspoint.com/c_standard_library/….
Nel tuo codice
char dtm[100];
sscanf(dtm, "%d-%d-%d", &input_anno, &input_mese, &input_giorno);
copi in input_anno, input_mese e input_giorno i dati contenuti in dtm (indefiniti, perché non è stato inizializzato).
Ultima modifica effettuata da gcali 13/05/14 13:06
aaa
15/05/14 14:22
nessuno
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à.