vip268 utworzono 29 sierpnia 2013 utworzono 29 sierpnia 2013 Chciałbym sie zapytać czy jest możliwość dostosowania czasu trwania komend w C np. getchar(), scanf itd. Chodzi mi czy można jakoś odgórnie je zodyfikowac by czekały na enter do okreslonej chwili. NP. program stoi czeka na znak i po powiedzmy minucie przechodzi dalej po nie uzyskaniu klawisza enter. Z góry thx za odp.
leggo komentarz 30 sierpnia 2013 komentarz 30 sierpnia 2013 Ani getchar, ani scanf nie dają możliwości określenia czasu oczekiwania. Takie ograniczenie w programie musisz zrealizować samodzielnie.
vip268 komentarz 30 sierpnia 2013 Autor komentarz 30 sierpnia 2013 Tylko te komendy czekaja na podanie z klawiatury, a mi jest potrzebne takie coś żeby wczytywać np. klawisze w czesie rzeczywistym podczas pętli nie przerywajac dzialania. Cos na zasadzie czeka sekunde na klawisz, jesli nie otrzyma to kontynulujev i przechodzi do nastepnego polecenia.
rafalluz komentarz 30 sierpnia 2013 komentarz 30 sierpnia 2013 Zapoznaj się z wielowątkowością. W mainie robisz wątek, który wczytuje znak/znaki, a po określonym czasie go ubijasz, niezależnie od tego, czy wczytał, czy nie. Ale po ubiciu musisz sprawdzić, czy znak/znaki wczytano.
Garrappachc komentarz 31 sierpnia 2013 komentarz 31 sierpnia 2013 Zapomnij to scanf. Takie coś da się zrobić na jednym wątku, ale to wymaga zewnętrznej biblioteki. W przypadku Windowsa to będzie niewielka część WinAPI, a w przypadku Linuksa - X. Pobierasz czas systemowy, w pętli pobierasz stan klawiatury i sprawdzasz ile czasu upłynęło. Jeżeli jakiś klawisz został wciśnięty, przerywasz pętlę, tak samo w przypadku przekroczenia wybranego czasu.
vip268 komentarz 1 września 2013 Autor komentarz 1 września 2013 Poczytam o wątkach na pewno się przyda. A co do scanf myslałęm o czasie systemowym i sprawdzaniu go, ale wszystkie również scanf z tego co mi wiadomo czeka enter. Bedzie tak czeka czeka i nie przejdzie do komenty sprawdzenia czy okreslony czas minoł nie wiem jak można to przeskoczyć od niczego poczytam o tym WinAPI i zobacze. Jak by ktos mial jakies rady jeszcze z góry thx.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.