【发布时间】:2021-10-17 14:15:15
【问题描述】:
我有一个初学者编码任务,第一步是我的程序“应该提示用户输入包含以下信息的文件的文件名:”已经有预制代码可以处理,“music_player.rb” (我必须在其中编写代码)和“albums.text”(这是我要读取的文件)
我知道a_file = File.new("mydata.txt", "r") 是从文件中读取。我正在尝试:
file_name = gets()
a_file = File.new("#{file_name}" , "r") # (line 13)
我总是出错
music_player_with_menu.rb:13:in `initialize': No such file or directory @ rb_sysopen - albums.txt (Errno::ENOENT)
当我输入albums.txt。如果我只是删除gets 并拥有File.new("albums.txt" , "r") 它可以工作。我不确定我做错了什么。
【问题讨论】:
-
如果您在
gets和尝试打开文件之间插入p filename行,您可以看到Todd A. Jacobs 所描述的内容。此外,gets返回一个字符串,因此您不需要 "#{...}" 构造,只需在chomping 之后使用File.new(file_name, "r")。 -
是的,他的回答帮助了我,我只需要使用 .chomp。我不确定是否需要编辑这篇文章或显示我的问题已得到解答的内容,我以前没有使用过 stackoverflow。
-
您可以对您认为有助于理解的所有答案进行投票,但如果您认为某个特定答案可以帮助您解决问题,请单击它左侧的复选标记。这将其标记为“答案”。如果你想留下来,你也应该选择the tour,至少看看help center。欢迎登机!
标签: ruby file file-handling