Чтение ввода с консоли в Ruby?


Я хочу написать простую программу A+B в ruby, но я понятия не имею, как работать с консолью.

4 97

4 ответа:

вы говорите о 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

вы также можете передавать параметры через командную строку. Аргументы командной строки хранятся в массиве ARGV. таким образом, ARGV[0] - это первое число, а ARGV[1] - второе число

#!/usr/bin/ruby

first_number = ARGV[0].to_i
second_number = ARGV[1].to_i

puts first_number + second_number

и вы называете это

% ./plus.rb 5 6
==> 11

есть много способов, чтобы принять вход от пользователей. Мне лично нравится с помощью метода получает. Когда вы используете gets, он получает строка что вы набрали, и что включает в себя введите клавиша, которую вы нажали чтобы закончить ваш ввод.

name = gets
"mukesh\n"

вы можете увидеть это в irb; введите это, и вы увидите \n, который является символом "новой строки", который создает клавиша ENTER: Типа name = gets вы увидите что-то вроде "mukesh\n" Вы можете избавиться от надоедливых новая строка символ с помощью chomp метод.

метод chomp возвращает вам строку, но без завершающей новой строки. Прекрасный способ гусеничка жизни Спасителя.

name = gets.chomp
"mukesh"

вы также можете использовать терминал для считывания входных данных. ARGV - это константа, определенная в объекткласс. Это экземпляр массив класс и имеет доступ к все методы массива. Поскольку это массив, даже если он является константой, его элементы могут быть изменены и очищены без проблем. По умолчанию Ruby захватывает все аргументы командной строки, переданные программе Ruby (разделенные пробелами) при вызове двоичного файла командной строки и сохраняет их в виде строк в массив ARGV.

при написании внутри вашей программы Ruby,ARGV примет команду командной строки, которая выглядит так это:

test.rb hi my name is mukesh

и создать массив, который выглядит так:

["hi", "my", "name", "is", "mukesh"]

но, если я хочу передать ограниченный ввод, то мы можем использовать что-то вроде этого.

test.rb 12 23

и использовать эти входные данные, как это в вашей программе:

a = ARGV[0]
b = ARGV[1]

Если вы хотите провести аргументы из терминала, попробуйте следующий код:

A = ARGV[0].to_i
B = ARGV[1].to_i

puts "#{A} + #{B} = #{A + B}"