我想编写一个简单的程序,将控制台输入写入到输入名称的文件中。Ruby - 如何将控制台输入写入文件
file_name = ARGV[0]
of = File.open(file_name, 'w')
while a = gets.chomp
puts a
of.puts a
end
#红宝石write_script.rb file_name.txt
回报:main: undefined method chomp for nil:NilClass (NoMethodError)
更新:
file_name = ARGV[0]
File.open(file_name, 'w') do |file|
while (a = gets)
print a
file.write a
end
end
执行此代码之后 - 程序终止在启动和空文件创建。
什么是正确的做法?
美丽的解决方案,只是我有ctr-c的问题。谢谢) – 2012-02-04 21:35:44
但是ctr-c,puts:**错误得到:中断** – 2012-02-04 21:47:42
这是正常的,因为通过中断你抛出一个错误。如果你想要一个干净的完成,即使使用ctr-c,你也需要捕获这个错误。我更新了上面的代码来捕捉它。 – 2012-02-04 22:01:57