16

如何在 Lua 中(如scanf在 C 中)从用户那里获得输入?
例如,程序询问用户他的名字,然后他写他的名字,然后程序将输出他的名字。

4

2 回答 2

38

使用 io.read() 请注意,该函数可以使用不同的参数进行自定义。这里有些例子。

 s = io.read("*n") -- read a number
 s = io.read("*l") -- read a line (default when no parameter is given)
 s = io.read("*a") -- read the complete stdin
 s = io.read(7) -- read 7 characters from stdin
 x,y = io.read(7,12) -- read 7 and 12 characters from stdin and assign them to x and y
 a,b = io.read("*n","*n") -- read two numbers and assign them to a and b
于 2012-08-22T09:40:32.860 回答
11

可以使用 检索最简单的输入io.read()。这将从标准输入中读取一行(通常是键盘,但可以从文件中重定向)。

你可以像这样使用它:

io.write('Hello, what is your name? ')
local name = io.read()
io.write('Nice to meet you, ', name, '!\n')

io.read()只是 的捷径io.input():read(),同样io.write()是 的捷径io.output():write()请参阅read()此处的 API 。

请注意,它io.write()不会像那样自动终止您的线路print()

于 2012-08-22T09:19:50.943 回答