1
我正在寫一個微型的交互式命令行工具,提示用戶按數字鍵。它應該在第一次按鍵輸入後直接繼續。處理單個字符的用戶輸入,而不按輸入
目前,我這樣做是爲了捕捉用戶的輸入
puts "yes, please ..."
gets.chomp
......然而,這需要按「Enter」鍵確認輸入。如何在第一次按鍵後立即返回輸入值?
我正在寫一個微型的交互式命令行工具,提示用戶按數字鍵。它應該在第一次按鍵輸入後直接繼續。處理單個字符的用戶輸入,而不按輸入
目前,我這樣做是爲了捕捉用戶的輸入
puts "yes, please ..."
gets.chomp
......然而,這需要按「Enter」鍵確認輸入。如何在第一次按鍵後立即返回輸入值?
嘗試這樣:
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
@BerndPlontsch如果解決了這個問題,請標明答案正如所接受的那樣1)這個問題不再是一個ppear沒有答案,2)未來的訪問者將知道該解決方案是否可行。否則,考慮刪除你的問題。謝謝! –
看起來有前 [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