我想在ruby中编写一个简单的A + B程序,但我不知道如何使用控制台。
答案 0 :(得分:208)
您在谈论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
答案 1 :(得分:28)
您也可以通过命令行传递参数。命令行参数是数组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
答案 2 :(得分:8)
有很多方法可以从用户那里获取输入。我个人喜欢 使用方法得到。当您使用gets时,它会获得字符串 您键入的内容,包括您按下的 ENTER 键 结束你的意见。
<?php
require('cron_config.php');
foreach (glob("../files/out/orderstatus_*.csv") as $filename) {
echo "$filename \n";
}
// Open and parse the sales.csv file
$fh = fopen("$filename", "r");
while ($line = fgetcsv($fh, 1000, ","))
{
$order_id = $line[0];
$order_status_id = $line[1];
$date_modified = $line[2];
// Insert the data into the sales table
$query = "UPDATE oc_order o SET order_status_id='$order_status_id',
date_modified='$date_modified' WHERE order_id = '$order_id'";
$result = $mysqli->query($query);
}
fclose($fh);
unlink("$filename");
$mysqli->close();
?>
您可以在 irb 中看到这一点;输入这个,你会看到\ n,这是ENTER键产生的“换行符”字符: 输入
name = gets "mukesh\n"
,您会看到name = gets
之类的内容 您可以使用 chomp 方法摆脱讨厌的换行符字符。
chomp方法会返回字符串,但没有终止换行符。美丽的chomp方法生活救星。
"mukesh\n"
您也可以使用终端读取输入。 ARGV 是对象 类中定义的常量。它是 Array类的一个实例,可以访问所有数组方法。因为它是一个数组,即使它是一个常量,它的元素也可以毫无问题地修改和清除。默认情况下,Ruby在调用命令行二进制文件时捕获传递给Ruby程序的所有命令行参数(按空格分割),并将它们存储为 ARGV数组中的字符串。
在Ruby程序中编写时, ARGV 将采用如下所示的命令行命令:
name = gets.chomp
"mukesh"
并创建一个如下所示的数组:
test.rb hi my name is mukesh
但是,如果我想传递有限的输入,那么我们可以使用这样的东西。
["hi", "my", "name", "is", "mukesh"]
并在您的程序中使用这样的输入:
test.rb 12 23
答案 3 :(得分:5)
如果要保留Terminal中的参数,请尝试以下代码:
A = ARGV[0].to_i
B = ARGV[1].to_i
puts "#{A} + #{B} = #{A + B}"
答案 4 :(得分:0)
如果要创建交互式控制台:
#!/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
退出