Я хочу написать простую программу A + B в рубине, но я понятия не имею, как работать с консолью.
Чтение ввода с консоли в Ruby?
Ответ 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
для выхода