2014-12-10 12 views
5

Ich versuche, ein Programm zu schreiben, das den Benutzer auffordert, eine Frage mit gets.chomp in drei Sekunden zu beantworten, oder die Antwort wird automatisch falsch zurückgeben.Zeitüberschreitung gets.chomp

Ich fand alles außer dem Timeout-Teil und ich fragte mich, ob jemand helfen könnte.

+1

Zeigen Sie uns Ihren Code. – Cthulhu

+1

Siehe [Timeout] (http://www.ruby-doc.org/stdlib-2.1.5/libdoc/timeout/rdoc/Timeout.html). –

Antwort

-4

Ich habe einen Code dafür geschrieben.

def question_time 
    puts "Your question here" 
    t = Time.now 
    answer = gets.chomp 
    Time.now - t > 3 ? false : answer 
end 
+0

Das Problem ist, dass "gets" auf unbestimmte Zeit blockiert wird. Wenn der Benutzer also nichts unternimmt, wird das Programm niemals enden. – Carpetsmoker

+0

Diese Antwort ist falsch. Ich empfehle es zu entfernen. Es ignoriert völlig den Kern der Frage und außerdem weiß ich nicht, wie und wann dieser Code jemals nützlich sein sollte. Die Frage fragt nach einem Programm, das automatisch false zurückgibt, wenn der Benutzer nicht innerhalb von 3 Sekunden geantwortet hat, aber dieser Code wartet (für immer), bis der Benutzer eine Eingabe gibt, da er die Blöcke ausführt. –