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