嗨,我正在练习一个简单的ruby脚本,在其中我使用gets.chomp
和参数创建表单,问题是当gets.chomp
使用脚本时,当我应用arguments时返回错误test
。
代码:
#!usr/bin/ruby
def formulario(quien)
while (1)
print "[+] Word : "
word = gets.chomp
print quien + " -> " + word
end
end
quien = ARGV[0]
formulario(quien)
错误:
[+] Word : C:/Users/test/test.rb:8:in `gets': No such file or directory @ rb_sysopen - test (Errno::E
NOENT)
from C:/Users/test/test.rb:8:in `gets'
from C:/Users/test/test.rb:8:in `formulario'
from C:/Users/test/test.rb:17:in `<main>'
有人可以帮忙吗?
似乎您希望用户通过从中读取一行来键入一些输入STDIN
,最好的方法是调用STDIN.gets
而不是gets
。因此,您的行变为:
word = STDIN.gets.chomp
记录为IO.gets
。STDIN
是的实例IO
。
现在,您正在执行Kernel.gets
,它执行的操作有所不同(强调我的意思):
从ARGV(或$ *)中的文件列表中返回(并分配给$ _)下一行,或者如果命令行中不存在文件,则从标准输入中返回下一行。
这似乎表现得像个STDIN.gets
如果ARGV
是空的,但不是一回事,因此混乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句