嗨我正在制作一个简单的ruby脚本,在我使用gets.chomp和参数创建表单时,问题是当gets.chomp我使用脚本时,在应用参数时返回错误test.
代码:
#!usr/bin/ruby
def formulario(quien)
while (1)
print "[+] Word : "
word = gets.chomp
print quien + " -> " + word
end
end
quien = ARGV[0]
formulario(quien)
Run Code Online (Sandbox Code Playgroud)
错误:
[+] 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>'
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
Mar*_*oij 78
看起来您希望用户通过读取一行来输入一些输入STDIN,最好的方法是通过调用STDIN.gets而不是gets.所以你的线路变成:
word = STDIN.gets.chomp
Run Code Online (Sandbox Code Playgroud)
这被记录为IO.gets.STDIN是一个实例IO.
现在,你正在执行Kernel.gets,这会做一些不同的事情(强调我的):
返回(并指定$ _)ARGV(或$*)中文件列表中的下一行,如果命令行中没有文件,则返回标准输入.
这似乎表现得像个STDIN.gets如果ARGV是空的,但不是一回事,因此混乱.