以下の変数maxをハードコーディングすると、プログラムは問題なく実行されます。引数を渡すと、max は正しく設定されますが、スローとエラーが発生します。何故ですか?
max = ARGV[0].to_i
# Ask user for first guess
puts "I am thinking of a number between 1 and " + max.to_s + "."
print "Make your guess: "
guess = gets.chomp.to_i
スローされるエラー: `gets': そのようなファイルまたはディレクトリはありません (Errno:: ENOENT)
注: getsをSTDIN.getsに変更することでエラーは修正されますが、引数がなくてもプログラムが正常に動作するのに、なぜこれが必要なのですか?
さらに、gets のデフォルトの動作をファイル全体でSTDIN.getsに戻す方法はありますか? おそらく、プログラムの先頭に1行ありますか?