2013-10-15 90 views
1

我正在寫一個微型的交互式命令行工具,提示用戶按數字鍵。它應該在第一次按鍵輸入後直接繼續。處理單個字符的用戶輸入,而不按輸入

目前,我這樣做是爲了捕捉用戶的輸入

puts "yes, please ..." 
gets.chomp 

......然而,這需要按「Enter」鍵確認輸入。如何在第一次按鍵後立即返回輸入值?

+1

看起來有前 [http://stackoverflow.com/questions/8072623/get-single-char-from-console-immediately被問] [1] [1]:http://stackoverflow.com/questions/8072623/get-single-char-from-console-immediately – Bala

回答

0

嘗試這樣:

puts 'Do you want to proceed? y/n' 

loop do 
    system("stty raw -echo") 
    c = STDIN.getc 
    system("stty -raw echo") 

    case c 
    when 'y' 
    puts 'Yes' 
    break 
    when 'n' 
    puts 'No' 
    break 
    else 
    puts 'Please type "y" or "n"' 
    end 
end 
+0

@BerndPlontsch如果解決了這個問題,請標明答案正如所接受的那樣1)這個問題不再是一個ppear沒有答案,2)未來的訪問者將知道該解決方案是否可行。否則,考慮刪除你的問題。謝謝! –