我有一個初學者編碼任務,第一步是我的程式“應該提示用戶輸入包含以下資訊的檔案的檔案名:”已經有預制的代碼可以處理,一個“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")讓它作業。我不確定我做錯了什么。
uj5u.com熱心網友回復:
嘗試讀取mydata.txt\n會引發例外,除非檔案名實際上以 結尾\n,但這種情況很少發生。這是因為您正在使用 #gets,其中包括來自用戶按RETURN或的換行符ENTER。
當您從 STDIN 讀取時,您將得到一個行尾(例如\n在 *nix 和\r\nWindows 上)。因此,當您呼叫 #gets 時,您幾乎總是需要對結果呼叫String#chomp。
file_name = gets
#=> "foo\n"
file_name = gets.chomp
#=> "foo"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325086.html
上一篇:如何在Swagger中解決這個問題https://stackoverflow.com/questions/16015548/how-to-send-multipart-form-data-reques
