1

我在 Ubuntu 12.04 中通过 scite 运行 lua 脚本。当我执行一个io.read程序时。示例:(每个命令都在单独的行上)

io.write("Please enter a number: ")
user_input = io.read()
print(user_input)

当我执行程序时,我没有得到一个单独的弹出对话窗口来询问用户输入。

我在代码的右侧得到以下输出:

> lua5.1 "io_examples.lua"
Please enter a number: nil

我知道这听起来可能很愚蠢,但是如何让弹出的输出窗口询问用户的输入?

4

2 回答 2

0

我最终如何让程序正确执行是通过 ubuntu 终端运行它。我只需要 cd 到程序所在的目录,然后输入“lua”。我没有得到整洁的弹​​出窗口,但代码执行正确。

于 2013-08-08T04:11:11.093 回答
0

返回的 nilio.read可能是在读取过程中发生错误的提示。您可以通过用断言包围您的 io.read 语句来检查这一点:

local user_input = assert(io.read())

或者

local user_input = assert(io.read("*number")).

我最初的猜测是你收到了一个错误的文件描述符stdin,因为没有设置标准输入( )。

更多信息可以在这里找到:

http://www.lua.org/pil/21.1.html

http://www.lua.org/pil/8.html

于 2013-08-06T13:13:17.567 回答