在wxLUA中使用io.read()存在问题(不等待用户输入,始终返回nil)

我刚开始学习 Lua,遇到了用户输入的问题。不管我怎么做,io.read()总是返回nil

我尝试了下面这些方法,但都无效。

name = io.read()
print(name)

name = io.read(7)
print(name)

print(io.read:())

所有这些都只是简单地打印出nil。 我认为发生的事情是在用户有机会输入值之前,name就已经被设置为io.read()

这个:

 while not name do name = io.read()
 print name

会让程序崩溃在某种短路上,可能是因为循环完成并且应用程序在一秒钟内刷新。

我正在使用适用于 Windows 的 wxLua 环境,在对话框版本中,这些程序运行良好,但是,你显然不能做很多事情。

点赞
用户1442917
用户1442917

我不确定为什么你在尝试 io.read(7)(因为这会读取7个字节),但是以下脚本在我的 wxlua 上可以正常工作(我使用了自己编译的 wxlua 库,你可以在这里获取):

require('wx')
io.write("输入一些内容:")
local value = io.read()
io.write(value, "\n")
2015-03-04 22:27:43