Respuestas:
Estas hablando gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
¿Algo como eso?
Kernel.gets
intenta leer los parámetros encontrados en ARGV
y solo pide la consola si no los ARGV
encuentra. Para forzar a leer desde la consola incluso si ARGV
no está vacío, useSTDIN.gets
Kernel.gets
intente leer los archivos que se encuentran ARGV
y solo pregunte a la consola si no los ARGV
encuentra. Para forzar a leer desde la consola aunque ARGV
no esté vacío use STDIN.gets
.
a.to_i
y b.to_i
podría ser mejor
gets
bloqueando? Si no es así, ¿hay algún sustituto que esté bloqueando?
también puede pasar los parámetros a través de la línea de comando. Los argumentos de la línea de comandos se almacenan en la matriz ARGV. entonces ARGV [0] es el primer número y ARGV [1] el segundo número
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
y lo llamas así
% ./plus.rb 5 6
==> 11
Hay muchas formas de recibir comentarios de los usuarios. Personalmente, me gusta usar el método get. Cuando usa get, obtiene la cadena que escribió, y eso incluye la tecla ENTER que presionó para finalizar su entrada.
name = gets
"mukesh\n"
Puede ver esto en irb ; escriba esto y verá el \ n, que es el carácter de “nueva línea” que produce la tecla ENTER: Escriba
name = gets
y verá algo como"mukesh\n"
Puede deshacerse del molesto carácter de nueva línea usando el método chomp .
El método chomp le devuelve la cadena, pero sin la nueva línea de terminación. Hermosa salvadora de vida del método chomp.
name = gets.chomp
"mukesh"
También puede usar el terminal para leer la entrada. ARGV es una constante definida en la clase Object . Es una instancia de la clase Array y tiene acceso a todos los métodos de la matriz. Dado que es una matriz, aunque es una constante, sus elementos se pueden modificar y borrar sin problemas. De forma predeterminada, Ruby captura todos los argumentos de la línea de comandos pasados a un programa de Ruby (divididos por espacios) cuando se invoca el binario de la línea de comandos y los almacena como cadenas en la matriz ARGV .
Cuando se escribe dentro de su programa Ruby, ARGV tomará un comando de línea de comando que se ve así:
test.rb hi my name is mukesh
y crea una matriz que se ve así:
["hi", "my", "name", "is", "mukesh"]
Pero, si quiero pasar una entrada limitada, podemos usar algo como esto.
test.rb 12 23
y use esas entradas como esta en su programa:
a = ARGV[0]
b = ARGV[1]
Si desea hacer una consola interactiva:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Uso (suponiendo que coloque el fragmento anterior en el summator
archivo en el directorio actual):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Usar Ctrl + D
para salir