web-dev-qa-db-fra.com

Lire l'entrée de la console en Ruby?

Je veux écrire un simple programme A + B en Ruby, mais je ne sais pas comment travailler avec la console.

106
Sergey

Parlez-vous de gets?

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

Quelque chose comme ca?

Mise à jour

Kernel.gets essaie de lire les paramètres trouvés dans ARGV et ne demande à console que s’il n’a pas trouvé ARGV. Pour forcer la lecture depuis la console même si ARGV n'est pas vide, utilisez STDIN.gets

213
siame

vous pouvez également transmettre les paramètres via la ligne de commande. Les arguments de ligne de commande sont des magasins dans le tableau ARGV. alors ARGV [0] est le premier nombre et ARGV [1] le deuxième nombre

#!/usr/bin/Ruby

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

puts first_number + second_number

et vous l'appelez comme ça

% ./plus.rb 5 6
==> 11
28
rik.vanmechelen

Il existe de nombreuses façons de prendre en compte les commentaires des utilisateurs. Personnellement, j'aime utiliser la méthode. Lorsque vous utilisez gets, il obtient le chaîne que vous avez saisi, et cela inclut la touche , ENTREZ que vous avez appuyée pour mettre fin à votre saisie. .

name = gets
"mukesh\n"

Vous pouvez le voir dans irb; tapez ceci et vous verrez le\n, qui est le caractère “nouvelle ligne” que la touche Entrée produit: Type name = gets vous verrez quelque chose comme "mukesh\n" Vous pouvez vous débarrasser du caractère embarrassant nouvelle ligne en utilisant la méthode chomp.

La méthode chomp vous rend la chaîne, mais sans le retour à la ligne final. Belle méthode de vie sauveur de la méthode chomp.

name = gets.chomp
"mukesh"

Vous pouvez également utiliser terminal pour lire l'entrée. ARGV est une constante définie dans le Objectclass. C'est une instance de classe Array et a accès à toutes les méthodes de la matrice. Puisqu'il s'agit d'un tableau, même s'il s'agit d'une constante, ses éléments peuvent être modifiés et effacés sans problème. Par défaut, Ruby capture tous les arguments de ligne de commande passés à un programme Ruby (divisé par des espaces) lorsque le fichier binaire de ligne de commande est appelé et les stocke sous la forme suivante: chaînes dans le tableau ARGV.

Lorsqu'il est écrit dans votre programme Ruby, ARGV prendra une commande en ligne de commande qui ressemble à ceci:

test.rb hi my name is mukesh

et créez un tableau qui ressemble à ceci:

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

Mais si je veux faire passer un nombre limité d'entrées, nous pouvons utiliser quelque chose comme ceci.

test.rb 12 23

et utilisez ces entrées comme ceci dans votre programme:

a = ARGV[0]
b = ARGV[1]
9
Mukesh Kumar Gupta

si vous voulez conserver les arguments de Terminal, essayez le code suivant:

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

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