我刚刚进入Lua,我遇到了用户输入问题。无论我做什么,io.read()总是返回nil。
这是我尝试过的,没有任何作用。
name = io.read()
print(name)
name = io.read(7)
print(name)
print(io.read:())
所有这些只是打印零。
我认为发生的事情是name
在用户有机会实际输入值之前设置为io.read()
。
此:
while not name do name = io.read()
print name
只会导致程序在某种短路时崩溃,可能是因为循环完成且应用程序在几分之一秒内刷新。
我正在使用Windows的wxLua环境,在对话框版本中这些程序运行正常,但你显然无法做到这一点。
答案 0 :(得分:1)
我不确定你为什么要尝试io.read(7)
(因为这会读取7个字节),但是以下脚本适用于wxlua(尽管我使用自己编译的wxlua库,你可以获得{ {3}}):
require('wx')
io.write("Enter something: ")
local value = io.read()
io.write(value, "\n")