PDA

Visualizza la versione completa : [C] Leggere in input l'ora in formato hh:mm:ss


aemxle
14-11-2006, 21:35
Salve ragazzi ho una domanda da farvi:
devo fare un programma in C che prenda in input un orario espresso come hh:mm:ss, come devo strutturare la scanf in modo da utilizzarne solo una per prendere in input i valori in tre differenti variabili?

es:
inserisci l'ora in hh:mm:ss
input dell'utente------->23:30:00

come prendo in input il 23 nella variabile hvar, il 30 nella variabile mvar, lo 00 nella variabile svar con una sola scanf???

MItaly
14-11-2006, 21:40
scanf("%d:%d:%d",&hvar, &mvar, &svar);

aemxle
14-11-2006, 21:49
Ok, grazie mille della risposta, un'altra cosa:
e se io volessi fare in modo che non debba essere l'utente ad inserire i : come potrei fare?

es:

-inserisci l'ora nel formato hh:mm:ss
utente inserisce ---->12
stampa in automatico di : senza andare a capo----->12:
utente inserisce---->12:23
stampa in automatico di : senza andare a capo----->12:23:
ecc...


io ho provato così:
printf("Inserisci l'orario espresso come hh:mm:ss\n");
scanf("%d",&hhvar);
printf(":");
scanf("%d",&mmvar);
printf(":");
scanf("%d",&ssvar);
printf(":");

ma mi stampa i : sempre a capo... come faccio???



grazie mille delle risposte!!!

MItaly
14-11-2006, 21:55
Temo che tu, senza ricorrere a funzioni non standard, non possa evitare il ritorno a capo, perché si tratta di un elemento inserito dall'utente (quando preme Invio).

Lak3d
14-11-2006, 22:02
Originariamente inviato da aemxle
e se io volessi fare in modo che non debba essere l'utente ad inserire i : come potrei fare?


i : nella stringa di controllo del formato della scanf servono per fargli ignorare i trattini... li levi e chiederai all'utente di inserire la data senza i trattini... sarai poi tu a stamparla come ti pare con printf.

Oppure se vuoi evitare qualsiasi problema e far sì che qualsiasi modo di inserimento funzioni usa il carattere di soppressione dell'assegnamento * nella stringa di formato.

edit: missà che non ho capito bene cio che intendevi dire... :mame:

aemxle
14-11-2006, 22:04
Originariamente inviato da MItaly
Temo che tu, senza ricorrere a funzioni non standard, non possa evitare il ritorno a capo, perché si tratta di un elemento inserito dall'utente (quando preme Invio).


Capito, sono uno studente di informatica che ha appena iniziato, come libreria abbiamo introdotto solo stdio.h, quindi per ora non dovrei avere le competenze per effettuare una cosa del genere giusto? Grazie mille dell'aiuto comunque... un'ultima cosa: sapresti consigliarmi qualche guida di c da trovare online???

Grazie ancora!!!

Loading