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

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

Ответ 1

Вы говорите о gets?

puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c

Что-то вроде этого?

Update

Kernel.gets пытается прочитать параметры, найденные в ARGV, и запрашивает консоль, если не ARGV найден. Чтобы заставить читать с консоли, даже если ARGV не пуст, используйте STDIN.gets

Ответ 2

вы также можете передать параметры через командную строку. Аргументы командной строки - это хранилища в массиве 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

Ответ 3

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

name = gets
"mukesh\n"

Вы можете увидеть это в irb; введите это, и вы увидите \n, который является символом "новой строки", который генерирует клавиша ENTER: Тип name = gets вы увидите что-то вроде "mukesh\n"Вы можете избавиться от pesky символа новой строки, используя метод 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 12 23

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

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

Ответ 4

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

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

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

Ответ 5

Если вы хотите сделать интерактивную консоль:

#!/usr/bin/env ruby

require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
  addends << addend_string.to_i
  puts "#{addends.join(' + ')} = #{addends.sum}"
end

Использование (при условии, что вы поместили приведенный выше фрагмент в файл summator в текущем каталоге):

chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3

Используйте Ctrl + D для выхода