我正在学习运行一些教程和github ruby程序。当我在终端中运行其中一个程序时,它要求我输入一些东西,每行一个。我知道这很愚蠢,但我怎么告诉它我已经完成了在终端输入的东西?
puts "Please input a list of stocks, one per line"
LifeCycleReportItem.setup
report = Report.new
tickers = Array.new
STDIN.readlines.each { | ticker |
tickers.push(ticker.chomp)
}
这是终端:
Please input a list of stocks, one per line
GOOG
AAPL
我怎么告诉它我已经完成了?
答案 0 :(得分:4)
使用 Ctrl + D 输入在Windows上编写EOF(或 Ctrl + Z Enter )。
如果这个软件很容易被人类使用,你可以考虑说“或者一个空行停止”并改为检查。 (但使用STDIN.readlines.each
无效 - 仅gets
代替:)
)
答案 1 :(得分:2)
你可以处理一个停止字符串。例如,当ticker是空字符串时:
while(ticker = STDIN.gets.chomp) do
break if ticker.empty?
tickers.push(ticker)
end