2012-10-24 64 views
2

我想要一個簡單的預定義的輸入ruby。我的意思是,我希望默認情況下有一些東西,以便用戶可以編輯或只需按輸入即可跳過。我正在使用STDIN.gets.chomp如何設置預定義的輸入

not predifiend : "Please enter a title: " 
predefined : "Please enter a title: Inception " // "Inception" is pre-defined input] 
+1

你已經試過了什麼?你的代碼是什麼樣的? – dpassage

+0

打印「標題?」 title = STDIN.gets.chomp – Kivylius

回答

3

下面是一個次優的解決方案作爲默認的答案是不會立即清除的用戶開始:

prompt = 'Please enter a title: ' 
default_answer = 'Inception' 

# Print the whole line and go back to line start 
print "#{prompt}#{default_answer}\r" 
# Print only the prompt so that the cursor stands behing the prompt again 
print prompt 

# Fetch the raw input 
input = gets 

# If user just hits enter only the linebreak is put in 
if input == "\n" 
    answer = default_answer 
else # Otherwise the typed string including a linebreak is put in 
    answer = input.chomp 
end 

puts answer.inspect 

如果你想,我猜你必須使用更多的這樣的事情先進的終端功能。我想ncurses可以完成這項工作。

另一種選擇是將括號中的默認答案顯示出來,然後簡單地將提示放在後面。很多簡單的命令行工具都是這樣做的。這看起來像這樣:

Please enter a title [Inception]: 
相關問題