ruby脚本gets方法没有接受输入
怪我咯
怪我咯 2017-04-24 09:09:27
0
1
728

执行这个脚本的时候,kee=gets.chomp这行代码没有接受输入,请问是怎么回事?谢谢。

#!/usr/bin/ruby

require 'crypt/blowfish'

unless ARGV[0]
    puts "Usage: ruby encrypt.rb <filename.ext>"
    puts "Example: ruby encrypt.rb secret.stuff"
    exit
end

filename=ARGV[0].chomp
puts filename
c="Encrypted_#{filename}"
if File.exists?(c)
    puts "File already exists."
    exit
end
print "Enter your encryption key (1-56 bytes): "
kee=gets.chomp
begin
    blowfish=Crypt::Blowfish.new(kee)
    blowfish.encrypt_file(filename.to_str,c)
    puts 'Encryption sucess!'
rescue Exception => e
    puts "An error occurred during encryption: \n #{e}"
end
怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(1)
洪涛

You are calling the gets method in the Kernel. This gets method will try to read the contents of ARGV, unless AGRV is empty, then it will try to read the contents of STDIN.

http://www.ruby-doc.org/core-2.2.0/Kernel.html#method-i-gets

What you should call is IO#gets, such as STDIN.gets而不是gets.

http://www.ruby-doc.org/core-2.2.0/IO.html#method-i-gets

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template