Я говорю о Руби, но не о ROR. Там нет ни слова о вводе с консоли.
Сергей
Ответы:
228
Ты о чем gets?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Что-то такое?
Обновить
Kernel.getsпытается прочитать найденные параметры ARGVи запрашивает консоль, только если не ARGVнайден. Чтобы заставить читать с консоли, даже если ARGVне пусто, используйтеSTDIN.gets
У меня конфликт с этим решением: Kernel.getsпопробуйте прочитать файлы, найденные в, ARGVи запрашивает консоль, только если не ARGVнайдены. Чтобы заставить читать из консоли, даже если ARGVне пусто используйте STDIN.gets.
fguillen
3
a.to_iи b.to_iмогло быть лучше
Дориан
это getsблокировка? Если нет, то есть ли блокирующая замена?
noMAD
1
@fguillen - отличный ответ, и его не следует скрывать в комментариях. Не могли бы вы дать ответ, пожалуйста? Спасибо!
Дэн Розенстарк
2
@Yar спасибо за предложение, я добавил обновление к самому ответу.
fguillen
28
вы также можете передать параметры через командную строку. Аргументы командной строки хранятся в массиве ARGV. поэтому ARGV [0] - это первое число, а ARGV [1] - второе число.
Есть много способов получить информацию от пользователей. Мне лично нравится использовать метод получения. Когда вы используете get, он получает
введенную вами строку , в том числе клавишу ENTER, которую вы нажали для завершения ввода.
name = gets
"mukesh\n"
Вы можете увидеть это в irb ; введите это, и вы увидите \ n, символ «новой строки», который производит клавиша ENTER: Введите name = getsвы увидите что-нибудь вроде « "mukesh\n"
Вы можете избавиться от надоедливого символа новой строки, используя метод chomp» .
Метод chomp возвращает строку, но без символа новой строки в конце. Красивый метод перекусить спаситель жизни.
name = gets.chomp
"mukesh"
Вы также можете использовать терминал для чтения ввода. ARGV - это константа, определенная в классе Object . Это экземпляр класса Array и имеет доступ ко всем методам массива. Поскольку это массив, даже если он является константой, его элементы можно без проблем изменять и очищать. По умолчанию Ruby захватывает все аргументы командной строки, передаваемые программе Ruby (разделенные пробелами), когда вызывается двоичный файл командной строки, и сохраняет их в виде строк в массиве ARGV .
При написании внутри вашей программы Ruby ARGV примет команду командной строки, которая выглядит следующим образом:
test.rb hi my name is mukesh
и создайте массив, который выглядит так:
["hi","my","name","is","mukesh"]
Но, если я хочу передать ограниченный ввод, мы можем использовать что-то вроде этого.
test.rb 1223
и используйте эти входные данные в своей программе:
Ответы:
Ты о чем
gets
?Что-то такое?
Обновить
Kernel.gets
пытается прочитать найденные параметрыARGV
и запрашивает консоль, только если неARGV
найден. Чтобы заставить читать с консоли, даже еслиARGV
не пусто, используйтеSTDIN.gets
источник
Kernel.gets
попробуйте прочитать файлы, найденные в,ARGV
и запрашивает консоль, только если неARGV
найдены. Чтобы заставить читать из консоли, даже еслиARGV
не пусто используйтеSTDIN.gets
.a.to_i
иb.to_i
могло быть лучшеgets
блокировка? Если нет, то есть ли блокирующая замена?вы также можете передать параметры через командную строку. Аргументы командной строки хранятся в массиве ARGV. поэтому ARGV [0] - это первое число, а ARGV [1] - второе число.
и вы называете это так
источник
Есть много способов получить информацию от пользователей. Мне лично нравится использовать метод получения. Когда вы используете get, он получает введенную вами строку , в том числе клавишу ENTER, которую вы нажали для завершения ввода.
Метод chomp возвращает строку, но без символа новой строки в конце. Красивый метод перекусить спаситель жизни.
Вы также можете использовать терминал для чтения ввода. ARGV - это константа, определенная в классе Object . Это экземпляр класса Array и имеет доступ ко всем методам массива. Поскольку это массив, даже если он является константой, его элементы можно без проблем изменять и очищать. По умолчанию Ruby захватывает все аргументы командной строки, передаваемые программе Ruby (разделенные пробелами), когда вызывается двоичный файл командной строки, и сохраняет их в виде строк в массиве ARGV .
При написании внутри вашей программы Ruby ARGV примет команду командной строки, которая выглядит следующим образом:
и создайте массив, который выглядит так:
Но, если я хочу передать ограниченный ввод, мы можем использовать что-то вроде этого.
и используйте эти входные данные в своей программе:
источник
если вы хотите сохранить аргументы из Терминала, попробуйте следующий код:
источник
Если вы хотите сделать интерактивную консоль:
Использование (при условии, что вы поместили приведенный выше фрагмент в
summator
файл в текущем каталоге):Используйте
Ctrl + D
для выходаисточник