在Ruby中从控制台读取input?
我想用ruby编写一个简单的A + B程序,但我不知道如何使用控制台。
你在谈论gets ? 
 puts "Enter A" a = gets.chomp puts "Enter B" b = gets.chomp c = a.to_i + b.to_i puts c 
类似的东西?
更新
  Kernel.gets尝试读取在ARGVfind的参数,并且只有在未findARGV时才要求进行控制。 即使ARGV不是空的, STDIN.gets强制从控制台读取,使用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 
如果你想从terminal持有参数,请尝试下面的代码:
 A = ARGV[0].to_i B = ARGV[1].to_i puts "#{A} + #{B} = #{A + B}" 
有很多方法可以从用户那里获得input。 我个人喜欢使用方法获取。 当您使用获取时,它会得到您键入的string ,并包括您按下以结束您的input的ENTER键。
 name = gets "mukesh\n" 
你可以在irb中看到这个; 键入这个,你会看到\ n,这是ENTER键生成的“换行”字符:types
name = gets你会看到像"mukesh\n"东西你可以使用chomp方法摆脱讨厌的换行符 。
chomp方法给你回string,但没有终止的换行符。 美丽的chomp方法救世主。
 name = gets.chomp "mukesh" 
您也可以使用terminal来读取input。 ARGV是在Object 类中定义的一个常量。 它是Array类的一个实例,可以访问所有的数组方法。 由于它是一个数组,即使它是一个常量,它的元素也可以被修改和清除,而不会造成麻烦。 默认情况下,当调用命令行二进制文件时,Ruby会捕获传递给Ruby程序的所有命令行参数(以空格分隔),并将它们作为string存储在ARGV数组中 。
当你写在你的Ruby程序中时, ARGV将采取如下的命令行命令:
 test.rb hi my name is mukesh 
并创build一个如下所示的数组:
 ["hi", "my", "name", "is", "mukesh"] 
但是,如果我想通过有限的input,那么我们可以使用这样的东西。
 test.rb 12 23 
并在程序中使用这些input:
 a = ARGV[0] b = ARGV[1]