我想通過閱讀文件來填充ruby中的多維數組。下面是代碼:從文件填充紅寶石數組閱讀
class Maze
attr_accessor :array
def initialize(filename)
handler = File.open(filename,"r")
@array = Array.new(10,Array.new(10))
n = 0;
i = 0;
while(line = handler.gets) do
i = 0
line.chomp.each_char do |char|
p char
@array[n][i] = char
i += 1
end #iterator over character in every line
n += 1
end #iterator over file lines
handler.close
end #constructor
end #class
a = Maze.new("maze.txt")
p a.array
下面是該文件的內容:
##########
# #
# #### #
# # # #
@ # # ?
# # # #
# # #
# #### #
# #
##########
然而這行代碼(代碼的最後一行)
p a.array
將打印數組10乘10,但全是「#」符號。沒有空格也沒有「?」。重要的是要注意的是,
p char
在我分配值的數組塊打印正確的字符。它在正確的時間打印空間和問號等......我知道這是非常簡單的東西,但它讓我煩惱,我想我需要一雙新的眼睛來看它
爲什麼它只有數組「#」符號。爲什麼不是所有其他字符,如「」,「@」,「?」在我的陣列?是我的代碼分配錯誤編碼
你的問題是什麼? – sawa 2014-09-26 18:07:49
爲什麼數組只有「#」符號。爲什麼不是所有其他字符,如「」,「@」,「?」在我的陣列?我的代碼中的賦值錯誤地編碼了嗎? – Bula 2014-09-26 18:20:40
將您的評論置於您的問題中,因爲它定義了您要做的事情。 – 2014-09-26 18:56:42