scanf ohne warten

OP #2895381
Lesenswert?
• ▲
▼
Hey Leute,
ich mache gerade eine Uhr mit MINGW so rein als Übung. Im Prinzip 
funktioniert das Programm schon, die Überläufe klappen auch mit 
Schaltjahre usw. richtig. Um die Uhr zu stellen habe ich eine einfache 
"scanf" Funktion verwendet:
1
 scanf("%i:%i:%i %i.%i.%i" , &hour, &min, &sec, &day, &month, &year);

ich weiß das ist nicht de schöne Lösung und eine Array Analyse wäre da 
sicher schöner und funktioneller. Das mache ich Vielleicht auch nochmal 
zusätzlich.

Jetzt zu meiner eigentlichen Frage:

Mein Programm sitzt im Moment eigentlich in einer Endlosschleife fest. 
Um die zu beenden, wäre es jetzt schön ein Zeichen einlesen zu können, 
um später beispielsweise die Uhr nachstellen zu können, oder das 
Programm zu schließen.
Die Methoden, die ich kenne um ein Zeichen einzulesen, halten aber 
leider das Programm auf.Gibt es eine Funktion, die optional was 
einließt, also wenn was gedrückt wird die Variable verändert, sonst so 
lässt wie sie ist?


Danke für Eure Hilfe!
Stephan
#2895613
Lesenswert?
• ▲
▼
je nach Umgebung kann man auch den Filedescriptor auf "non blocking" 
setzen und auf Verdacht lesen.
Dann (aber auch vorher schon) sollte man natürlich den Rückgabewert von 
scanf() anschauen, sonst sieht man ja nicht, ob etwas gelesen wurde.

Oder mit select() o.ä. testen, ob was da ist.

Ach ja, und ggf. die Zeilenpufferung stillegen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren