Подтвердить что ты не робот

Ядро # получает попытки читать файл вместо стандартного ввода

Я новичок в Ruby, и сегодня я написал приложение, которое вы можете передать аргументам через ARGV. Но внутри моего приложения я хочу использовать "получает". Проблема в том, что каждый раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке.

Вот простой script, который показывает мою проблему:

print "Say something! "
input = gets

Если бы я назвал это так:

$ ruby script.rb this is arguments

Я получаю эту ошибку:

script.rb:2:in `gets': No such file or directory - this (Errno::ENOENT)
from script.rb:2

Надеюсь, кто-то сможет помочь мне решить эту проблему, поэтому я могу продолжить свое путешествие по Руби.:)

Изменить: Я знаю, что "Gets" не будет извлекать аргументы, переданные в файл. "Gets" запросит пользователя для ввода. Я хочу иметь возможность использовать оба этих метода в своем приложении.

4b9b3361

Ответ 1

Если есть аргументы, метод gets по умолчанию пытается обработать первый файл в качестве файла и прочитать его. Чтобы читать из $stdin в такой ситуации, вы должны явно использовать его:

print "Say something! "
input = $stdin.gets