论坛首页 编程语言技术论坛

ruby文件读取问题

浏览 3646 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-06  

File.open("test.txt"){ |file| }

一切正常
为什么
filename=gets
File.open(filename){|file|}

就说是invalid argument了?
难道 File.open的参数类型不该是String?
test.rb:2:in `initialize': Invalid argument - test.txt (Errno::EINVAL)
        from test.rb:2:in `new'
        from test.rb:2
   发表时间:2007-03-06  
try

fname = gets
puts fname


引用
irb(main):035:0> fname = gets
test.rb
=> "test.rb\n"
irb(main):036:0> fname
=> "test.rb\n"


带换行符,解决方法:

fname = gets  
File.open(fname.chomp) {|file|}  


String#chomp 比 String#chop 更安全。
0 请登录后投票
   发表时间:2007-03-06  
果然可以了……
不过 我觉得 如果是多一个回车的话 应该提示 No such file or directory 才对啊
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics