1

在我学习的过程中,我正在运行一些教程和 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

我怎么告诉它我已经完成了?

4

2 回答 2

4

用于Ctrl+DEnter编写 EOF(或Ctrl+ZEnter在 Windows 上)。

但是,如果该软件旨在易于人类使用/使用,您可能会考虑说“或空行停止”并检查它。(不过,它不能使用STDIN.readlines.each- 只是gets代替:)

于 2013-01-18T02:40:29.377 回答
2

你可以处理一个停止字符串。例如,当 ticker 为空字符串时:

while(ticker = STDIN.gets.chomp) do
  break if ticker.empty?

  tickers.push(ticker)
end
于 2013-01-18T02:40:44.167 回答