从文件中读取后的命令行输入

你好,我正在尝试从一个包含单词列表的文件中读取内容,然后让用户在命令行上输入一个数字来选择他的单词。然而,当我运行我的代码时,它不允许我输入数字。这是我的代码:

function readFile(file)

     array = {}
     io.input(file)
     line = io.read()
     table.insert(array, line)

     while true do
           line = io.read()
           if line == nil then break end
           table.insert(array, line)
     end

     length = #array
     count = 1

     while count <= length do
           print(count .. ". " .. array[count])
           count = count + 1
     end

     return array

end

function chooseWord(wordArr)

     local answer
     io.write("Select a Number to choose a word")
     answer = io.read()
     local word = wordArr[answer]
     print(word)

     return word
end

words = readFile("dictionary.txt")
word = chooseWord(words)

如果我删除readFile函数,我可以完全正常地输入,但是一旦我读取了文件,我就不行了。

点赞
用户5636775
用户5636775

更好的做法:

local f = io.open(file, "r")
line = f:read()
f:close()

等等。

在你的情况下,你会改变标准输入文件(使用 io.input 将其从标准输入设备更改为你的文件),然后你需要之后重新设置。但这并不是一个好的解决方案。

2015-12-06 18:26:39